Source for file jClasses.class.php

Documentation is available at jClasses.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  utils
  5. @author      Laurent Jouanneau
  6. @contributor Loic Mathaud
  7. @copyright   2005-2007 Laurent Jouanneau
  8. @link        http://www.jelix.org
  9. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13. * This object is responsible to include and instancy some classes stored in the classes directory of modules.
  14. @package     jelix
  15. @subpackage  utils
  16. @static
  17. */
  18. class jClasses {
  19.  
  20.     static protected $_instances = array();
  21.  
  22.     private function __construct(){}
  23.  
  24.     /**
  25.      * include the given class and return an instance
  26.      * @param string $selector the jelix selector correponding to the class
  27.      * @return object an instance of the classe
  28.      */
  29.     static public function create($selector){
  30.         $sel new jSelectorClass($selector);
  31.         require_once($sel->getPath());
  32.         $class $sel->className;
  33.         return new $class ();
  34.     }
  35.  
  36.     /**
  37.      * alias of create method
  38.      * @see jClasses::create()
  39.      */
  40.     static public function createInstance($selector){
  41.         return self::create($selector);
  42.     }
  43.  
  44.     /**
  45.      * include the given class and return always the same instance
  46.      *
  47.      * @param string $selector the jelix selector correponding to the class
  48.      * @return object an instance of the classe
  49.      */
  50.     static public function getService($selector){
  51.         $sel new jSelectorClass($selector);
  52.         $s $sel->toString();
  53.         if (isset(self::$_instances[$s])) {
  54.             return self::$_instances[$s];
  55.         else {
  56.             $o self::create($selector);
  57.             self::$_instances[$s]=$o;
  58.             return $o;
  59.         }
  60.     }
  61.  
  62.     /**
  63.      * only include a class
  64.      * @param string $selector the jelix selector correponding to the class
  65.      */
  66.     static public function inc($selector{
  67.         $sel new jSelectorClass($selector);
  68.         require_once($sel->getPath());
  69.     }
  70.  
  71.     /**
  72.      * include an interface
  73.      * @param string $selector the jelix selector correponding to the interface
  74.      * @since 1.0b2
  75.      */
  76.     static public function incIface($selector{
  77.         $sel new jSelectorInterface($selector);
  78.         require_once($sel->getPath());
  79.     }
  80. }
  81.  
  82. ?>

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