Пример #1
0
 /**
  * Force creation of a singleton
  *
  * @param KConfigInterface 	$config    An optional KConfig object with configuration options
  * @param KServiceInterface	$container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $query = $container->get('repos://site/components.component')->getQuery();
         $registry = $container->get('application.registry');
         $cached = $registry->offsetExists('assignable-components');
         if ($cached) {
             $query->component($registry->offsetGet('assignable-components'));
         }
         //check the cache
         $container->get('repos://site/components.component')->getCommandChain()->disable();
         $components = $container->get('repos://site/components.component')->fetch($query, AnDomain::FETCH_ENTITY_LIST);
         $container->get('repos://site/components.component')->getCommandChain()->enable();
         if (!$cached) {
             $assignables = array();
             $names = array();
             foreach ($components as $component) {
                 if ($component->isAssignable()) {
                     $names[] = $component->component;
                     $assignables[] = $component;
                 }
             }
             $components = $assignables;
             $registry['assignable-components'] = $names;
         }
         $instance = $container->get('anahita:domain.entityset', array('data' => $components, 'repository' => 'repos://site/components.component'));
         $container->set($config->service_identifier, $instance);
     }
     return $container->get($config->service_identifier);
 }
Пример #2
0
 /**
  * Force creation of a singleton
  *
  * @param 	object 	An optional KConfig object with configuration options
  * @param 	object	A KServiceInterface object
  * @return ComDebugProfilerEvents
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $instance = new self($config);
         $container->set($config->service_identifier, $instance);
     }
     return $container->get($config->service_identifier);
 }
Пример #3
0
 /**
  * Return.
  *
  * @param KConfigInterface  $config    An optional KConfig object with configuration options
  * @param KServiceInterface $container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $identifier = self::_identifier($config->service_identifier);
         $instance = AnDomain::getRepository($identifier, $config->toArray());
         $container->set($config->service_identifier, $instance);
     }
     return $container->get($config->service_identifier);
 }
Пример #4
0
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     // Singleton behavior.
     $identifier = $config->service_identifier;
     $classname = $identifier->classname;
     $instance = new $classname($config);
     $container->set($identifier, $instance);
     return $instance;
 }
Пример #5
0
 /**
  * Force creation of a singleton.
  *
  * @param KConfigInterface  $config    An optional KConfig object with configuration options
  * @param KServiceInterface $container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     JPluginHelper::importPlugin('storage');
     if (!$container->has($config->service_identifier)) {
         $classname = $config->service_identifier->classname;
         $instance = new PlgStorageLocal($config);
         $container->set($config->service_identifier, $instance);
     }
     return $container->get($config->service_identifier);
 }
Пример #6
0
 /**
  * Force creation of a singleton.
  *
  * @param KConfigInterface  $config    An optional KConfig object with configuration options
  * @param KServiceInterface $container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $classname = $config->service_identifier->classname;
         $instance = new $classname($config);
         $container->set($config->service_identifier, $instance);
         $container->setAlias('application.dispatcher', $config->service_identifier);
     }
     return $container->get($config->service_identifier);
 }
Пример #7
0
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         //Create the singleton
         $classname = $config->service_identifier->classname;
         $instance = new $classname($config);
         $container->set($config->service_identifier, $instance);
     }
     return $container->get($config->service_identifier);
 }
Пример #8
0
 /**
  * Force creation of a singleton.
  *
  * @param KConfigInterface  $config    An optional KConfig object with configuration options
  * @param KServiceInterface $container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $classname = $config->service_identifier->classname;
         $instance = new $classname($config);
         $container->set($config->service_identifier, $instance);
         //Add the service alias to allow easy access to the singleton
         $container->setAlias('component.dispatcher', $config->service_identifier);
     }
     return $container->get($config->service_identifier);
 }
Пример #9
0
 /**
  * Force creation of a singleton
  *
  * @param 	object 	An optional KConfig object with configuration options
  * @param 	object	A KServiceInterface object
  * @return KDispatcherDefault
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     // Check if an instance with this identifier already exists or not
     if (!$container->has($config->service_identifier)) {
         //Create the singleton
         $classname = $config->service_identifier->classname;
         $instance = new $classname($config);
         $container->set($config->service_identifier, $instance);
         //Add the factory map to allow easy access to the singleton
         $container->setAlias('dispatcher', $config->service_identifier);
     }
     return $container->get($config->service_identifier);
 }
Пример #10
0
 /**
  * Force creation of a singleton.
  *
  * @param KConfigInterface  $config    An optional KConfig object with configuration options
  * @param KServiceInterface $container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $id = JFactory::getUser()->id;
         if (!$id) {
             $viewer = $container->get('repos://site/people.person')->getEntity()->setData(array('userType' => ComPeopleDomainEntityPerson::USERTYPE_GUEST), AnDomain::ACCESS_PROTECTED);
             $viewer->set('id', 0);
             $viewer->getRepository()->extract($viewer);
         } else {
             $viewer = $container->get('repos://site/people.person')->find(array('userId' => $id));
         }
         $container->set($config->service_identifier, $viewer);
     }
     return $container->get($config->service_identifier);
 }
Пример #11
0
 /**
  * Force creation of a singleton
  *
  * @param KConfigInterface 	$config    An optional KConfig object with configuration options
  * @param KServiceInterface	$container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $registry = $container->get('application.registry', array('key' => $config->service_identifier));
         if (!$registry->offsetExists('aggregations')) {
             $components = $container->get('repos://site/components.component')->fetchSet();
             $dispatcher = $container->get('koowa:event.dispatcher');
             $components->registerEventDispatcher($dispatcher);
             $aggregations = new KConfig();
             $event = new KEvent(array('aggregations' => $aggregations));
             $dispatcher->dispatchEvent('onStoryAggregation', $event);
             $registry->offsetSet('aggregations', $aggregations);
         }
         $container->set($config->service_identifier, $registry->offsetGet('aggregations'));
     }
     return $container->get($config->service_identifier);
 }
Пример #12
0
 /**
  * Force creation of a singleton
  *
  * @param KConfigInterface 	$config    An optional KConfig object with configuration options
  * @param KServiceInterface	$container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $id = JFactory::getUser()->id;
         if (!$id) {
             $viewer = $container->get('repos://site/people.person')->getEntity()->setData(array('userType' => 'Guest'), AnDomain::ACCESS_PROTECTED);
             $viewer->set('id', 0);
             $viewer->getRepository()->extract($viewer);
         } else {
             $viewer = $container->get('repos://site/people.person')->find(array('userId' => $id));
             if (!$viewer) {
                 $viewer = $container->get('com://site/people.helper.person')->createFromUser(JFactory::getUser());
                 $viewer->save();
             }
         }
         $container->set($config->service_identifier, $viewer);
     }
     return $container->get($config->service_identifier);
 }
Пример #13
0
 /**
  * Force creation of a singleton
  *
  * @param KConfigInterface 	$config    An optional KConfig object with configuration options
  * @param KServiceInterface	$container A KServiceInterface object
  *
  * @return KServiceInstantiatable
  */
 public static function getInstance(KConfigInterface $config, KServiceInterface $container)
 {
     if (!$container->has($config->service_identifier)) {
         $registry = $container->get('application.registry', array('key' => $config->service_identifier));
         if (!$registry->offsetExists('scopes')) {
             $components = $container->get('repos://site/components.component')->fetchSet();
             $dispatcher = $container->get('koowa:event.dispatcher');
             $components->registerEventDispatcher($dispatcher);
             $event = new KEvent(array('scope' => array()));
             $dispatcher->dispatchEvent('onBeforeFetch', $event);
             $scopes = new self();
             foreach ($event->scope as $scope) {
                 $scope = KConfig::unbox($scope);
                 if (is_array($scope)) {
                     $scope = $container->get('com://site/components.domain.entity.scope', $scope);
                 }
                 $scopes[$scope->getKey()] = $scope;
             }
             $registry->offsetSet('scopes', $scopes);
         }
         $container->set($config->service_identifier, $registry->offsetGet('scopes'));
     }
     return $container->get($config->service_identifier);
 }