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'); } } }
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; }