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

Documentation generated on Mon, 19 Sep 2011 14:12:09 +0200 by phpDocumentor 1.4.3