示例#1
0
 protected function addStrategies(Detector $detector, array $strategies, ServiceLocatorInterface $serviceLocator)
 {
     $plugins = $serviceLocator->get('SlmLocale\\Strategy\\StrategyPluginManager');
     foreach ($strategies as $strategy) {
         if (is_string($strategy)) {
             $class = $plugins->get($strategy);
             $detector->addStrategy($class);
         } elseif (is_array($strategy)) {
             $name = $strategy['name'];
             $class = $plugins->get($name);
             if (array_key_exists('options', $strategy) && method_exists($class, 'setOptions')) {
                 $class->setOptions($strategy['options']);
             }
             $priority = 1;
             if (array_key_exists('priority', $strategy)) {
                 $priority = $strategy['priority'];
             }
             $detector->addStrategy($class, $priority);
         } else {
             throw new Exception\StrategyConfigurationException('Strategy configuration must be a string or an array');
         }
     }
 }
示例#2
0
 public function setEventManager(Detector $detector, $event = null, $callback = null)
 {
     $events = new EventManager();
     if (null !== $event && null !== $callback) {
         $events->attach($event, $callback);
     }
     $detector->setEventManager($events);
     return $detector;
 }