Source for file jDao.class.php

Documentation is available at jDao.class.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage dao
  5. @author     Laurent Jouanneau
  6. @contributor
  7. @copyright   2005-2006 Laurent Jouanneau
  8. @link        http://www.jelix.org
  9. @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  10. */
  11.  
  12. /**
  13.  *
  14.  */
  15. require_once(JELIX_LIB_PATH.'db/jDb.class.php');
  16. require_once(JELIX_LIB_PATH.'dao/jDaoRecordBase.class.php');
  17. require_once(JELIX_LIB_PATH.'dao/jDaoFactoryBase.class.php');
  18.  
  19. /**
  20.  * Factory to create DAO objects
  21.  * @package  jelix
  22.  * @subpackage dao
  23.  */
  24. class jDao {
  25.  
  26.     /**
  27.     * creates a new instance of a DAO.
  28.     * If no dao is founded, try to compile a DAO from the dao xml file
  29.     * @param string|jSelectorDao$Daoid the dao selector
  30.     * @param string $profile the db profile name to use for the connection.
  31.     *    If empty, use the default profile
  32.     * @return jDaoFactoryBase  the dao object
  33.     */
  34.     public static function create ($DaoId$profile=''){
  35.         if(is_string($DaoId))
  36.             $DaoId new jSelectorDao($DaoId$profile);
  37.  
  38.         $c $DaoId->getDaoClass();
  39.         if(!class_exists($c,false)){
  40.             jIncluder::inc($DaoId);
  41.         }
  42.         $conn jDb::getConnection ($profile);
  43.         $obj new $c ($conn);
  44.         return $obj;
  45.     }
  46.  
  47.     /**
  48.     * return a DAO instance. It Handles a singleton of the DAO.
  49.     * If no dao is founded, try to compile a DAO from the dao xml file
  50.     * @param string|jSelectorDao$Daoid the dao selector
  51.     * @param string $profile the db profile name to use for the connection.
  52.     *    If empty, use the default profile
  53.     * @return jDaoFactoryBase  the dao object
  54.     */
  55.     public static function get ($DaoId$profile=''{
  56.        static $_daoSingleton=array();
  57.  
  58.        $sel new jSelectorDao($DaoId$profile);
  59.        $DaoId $sel->toString ();
  60.  
  61.         if (isset ($_daoSingleton[$DaoId])){
  62.             $_daoSingleton[$DaoIdself::create ($sel,$profile);
  63.         }
  64.         return $_daoSingleton[$DaoId];
  65.     }
  66.  
  67.     /**
  68.     * creates a record object for the given dao
  69.     * @param string $Daoid the dao selector
  70.     * @param string $profile the db profile name to use for the connection.
  71.     *    If empty, use the default profile
  72.     * @return jDaoRecordBase  a dao record object
  73.     */
  74.     public static function createRecord ($DaoId$profile=''){
  75.         $sel new jSelectorDao($DaoId$profile);
  76.         $c $sel->getDaoClass();
  77.         if(!class_exists($c,false)){
  78.             jIncluder::inc($sel);
  79.         }
  80.         $c $sel->getDaoRecordClass();
  81.         $obj new $c();
  82.         return $obj;
  83.     }
  84.  
  85.     /**
  86.      * return an instance of a jDaoConditions object, to use with
  87.      * a findby method of a jDaoFactoryBase object.
  88.      * @param string $glueOp value should be AND or OR
  89.      * @return jDaoConditions 
  90.      * @see jDaoFactoryBase::findby
  91.      */
  92.     public static function createConditions ($glueOp 'AND'){
  93.         $obj new jDaoConditions ($glueOp);
  94.         return $obj;
  95.     }
  96. }

Documentation generated on Thu, 22 Mar 2012 22:14:34 +0100 by phpDocumentor 1.4.3