コード例 #1
0
ファイル: abstract.php プロジェクト: nooku/nooku-framework
 /**
  * Instantiate the translator and decorate with the cache decorator if cache is enabled.
  *
  * @param   ObjectConfigInterface  $config   A ObjectConfig object with configuration options
  * @param   ObjectManagerInterface	$manager  A ObjectInterface object
  * @return  TranslatorInterface
  */
 public static function getInstance(ObjectConfigInterface $config, ObjectManagerInterface $manager)
 {
     $class = $manager->getClass($config->object_identifier);
     $instance = new $class($config);
     $config = $instance->getConfig();
     if ($config->cache) {
         $class = $manager->getClass('lib:translator.cache');
         if (call_user_func(array($class, 'isSupported'))) {
             $instance = $instance->decorate('lib:translator.cache');
             $instance->setNamespace($config->cache_namespace);
         }
     }
     return $instance;
 }
コード例 #2
0
ファイル: abstract.php プロジェクト: nooku/nooku-framework
 /**
  * Create filter and decorate it with FilterIterator if the filter implements FilterTraversable
  *
  * @param   ObjectConfigInterface  $config    Configuration options
  * @param   ObjectManagerInterface $manager A ObjectManagerInterface object
  * @return FilterInterface
  * @see FilterTraversable
  */
 public static function getInstance(ObjectConfigInterface $config, ObjectManagerInterface $manager)
 {
     //Create the singleton
     $class = $manager->getClass($config->object_identifier);
     $instance = new $class($config);
     if ($instance instanceof FilterTraversable) {
         $instance = $instance->decorate('lib:filter.iterator');
     }
     return $instance;
 }
コード例 #3
0
ファイル: dispatcher.php プロジェクト: nooku/nooku-framework
 /**
  * Force creation of a singleton
  *
  * @param  ObjectConfigInterface  $config  Configuration options
  * @param  ObjectManagerInterface $manager A ObjectManagerInterface object
  * @return DispatcherInterface
  */
 public static function getInstance(ObjectConfigInterface $config, ObjectManagerInterface $manager)
 {
     //Merge alias configuration into the identifier
     $config->append($manager->getIdentifier('dispatcher')->getConfig());
     //Create the singleton
     $class = $manager->getClass($config->object_identifier);
     $instance = new $class($config);
     //Add the object alias to allow easy access to the singleton
     $manager->registerAlias($config->object_identifier, 'dispatcher');
     return $instance;
 }
コード例 #4
0
ファイル: abstract.php プロジェクト: nooku/nooku-framework
 /**
  * Instantiate the object
  *
  * If the behavior is auto mixed also lazy mix it into related row objects.
  *
  * @param 	ObjectConfigInterface  $config	  A ObjectConfig object with configuration options
  * @param 	ObjectManagerInterface	$manager  A ObjectInterface object
  * @return  DatabaseBehaviorAbstract
  */
 public static function getInstance(ObjectConfigInterface $config, ObjectManagerInterface $manager)
 {
     $class = $manager->getClass($config->object_identifier);
     $instance = new $class($config);
     //Lazy mix behavior into related row objects. A supported behavior always has one is[Behaviorable] method.
     if ($instance->isSupported() && $instance->getMixer() && count($instance->getMixableMethods()) > 1) {
         $identifier = $instance->getMixer()->getIdentifier()->toArray();
         $identifier['path'] = array('database', 'row');
         $identifier['name'] = StringInflector::singularize($identifier['name']);
         $manager->registerMixin($identifier, $instance);
     }
     return $instance;
 }