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_DB_PATH.'jDb.class.php');
  16. require_once(JELIX_LIB_DAO_PATH.'jDaoRecordBase.class.php');
  17. require_once(JELIX_LIB_DAO_PATH.'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 $profil the db profil name to use for the connection.
  31.     *    If empty, use the default profil
  32.     * @return jDaoFactoryBase  the dao object
  33.     */
  34.     public static function create ($DaoId$profil=''){
  35.         if(!is_object($DaoId))
  36.             $sel new jSelectorDao($DaoId$profil);
  37.         else $sel $DaoId;
  38.  
  39.         $c $sel->getDaoClass();
  40.         if(!class_exists($c,false)){
  41.             jIncluder::inc($sel);
  42.         }
  43.         $conn jDb::getConnection ($profil);
  44.         $obj new $c ($conn);
  45.         return $obj;
  46.     }
  47.  
  48.     /**
  49.     * return a DAO instance. It Handles a singleton of the DAO.
  50.     * If no dao is founded, try to compile a DAO from the dao xml file
  51.     * @param string|jSelectorDao$Daoid the dao selector
  52.     * @param string $profil the db profil name to use for the connection.
  53.     *    If empty, use the default profil
  54.     * @return jDaoFactoryBase  the dao object
  55.     */
  56.     public static function get ($DaoId$profil=''{
  57.        static $_daoSingleton=array();
  58.  
  59.        $sel new jSelectorDao($DaoId$profil);
  60.        $DaoId $sel->toString ();
  61.  
  62.         if (isset ($_daoSingleton[$DaoId])){
  63.             $_daoSingleton[$DaoIdself::create ($sel,$profil);
  64.         }
  65.         return $_daoSingleton[$DaoId];
  66.     }
  67.  
  68.     /**
  69.     * creates a record object for the given dao
  70.     * @param string $Daoid the dao selector
  71.     * @param string $profil the db profil name to use for the connection.
  72.     *    If empty, use the default profil
  73.     * @return jDaoRecordBase  a dao record object
  74.     */
  75.     public static function createRecord ($DaoId$profil=''){
  76.         $sel new jSelectorDao($DaoId$profil);
  77.         $c $sel->getDaoClass();
  78.         if(!class_exists($c,false)){
  79.             jIncluder::inc($sel);
  80.         }
  81.         $c $sel->getDaoRecordClass();
  82.         $obj new $c();
  83.         return $obj;
  84.     }
  85.  
  86.     /**
  87.      * return an instance of a jDaoConditions object, to use with
  88.      * a findby method of a jDaoFactoryBase object.
  89.      * @param string $glueOp value should be AND or OR
  90.      * @return jDaoConditions 
  91.      * @see jDaoFactoryBase::findby
  92.      */
  93.     public static function createConditions ($glueOp 'AND'){
  94.         $obj new jDaoConditions ($glueOp);
  95.         return $obj;
  96.     }
  97. }
  98. ?>

Documentation generated on Wed, 07 Sep 2011 13:46:52 +0200 by phpDocumentor 1.4.3