/** * {@inheritdoc} */ public function process(tubepress_api_ioc_ContainerBuilderInterface $containerBuilder) { foreach (self::$_REQUIRED_SERVICE_IDS as $requiredId) { if (!$containerBuilder->hasDefinition($requiredId)) { return; } } $environment = $containerBuilder->getDefinition(tubepress_api_environment_EnvironmentInterface::_); $environment->addMethodCall('setWpFunctionsInterface', array(new tubepress_api_ioc_Reference(tubepress_wordpress_impl_wp_WpFunctions::_))); }
/** * {@inheritdoc} */ public function process(tubepress_api_ioc_ContainerBuilderInterface $containerBuilder) { if (!$containerBuilder->hasDefinition(tubepress_api_event_EventDispatcherInterface::_) || !$containerBuilder->has('tubepress_internal_logger_BootLogger')) { return; } $eventDispatcherDefinition = $containerBuilder->getDefinition(tubepress_api_event_EventDispatcherInterface::_); $logger = $containerBuilder->get('tubepress_internal_logger_BootLogger'); $clazz = $eventDispatcherDefinition->getClass(); $logger->debug(sprintf('Event dispatcher is of type <code>%s</code>', $clazz)); $methodCalls = $eventDispatcherDefinition->getMethodCalls(); $events = array(); foreach ($methodCalls as $methodCall) { $methodName = $methodCall[0]; $details = $methodCall[1]; if ($methodName !== 'addListenerService') { continue; } $eventName = $details[0]; $callbackServiceId = $details[1][0]; $callbackMethod = $details[1][1]; $priority = count($details) > 2 ? $details[2] : 0; if (!$containerBuilder->hasDefinition($callbackServiceId)) { $logger->error(sprintf('Event listener service ID <code>%s</code> does not exist.', $callbackServiceId)); continue; } $callbackDefinition = $containerBuilder->getDefinition($callbackServiceId); $callbackClass = $callbackDefinition->getClass(); if (!isset($events[$eventName])) { $events[$eventName] = array(); } $events[$eventName][$priority] = sprintf('%s::%s', $callbackClass, $callbackMethod); } $logger->debug(sprintf('There are %d events that can be triggered. Details follow...', count($events))); ksort($events); foreach ($events as $eventName => $listeners) { krsort($listeners); $logger->debug(sprintf('<code> %s</code>', $eventName)); foreach ($listeners as $priority => $listener) { $logger->debug(sprintf('<code> priority %d - %s</code>', $priority, $listener)); } } }
private function _doProcess(tubepress_api_ioc_ContainerBuilderInterface $containerBuilder, $serviceSuffix) { if (!$containerBuilder->hasDefinition('Twig_Loader_Filesystem' . $serviceSuffix)) { return; } $twigFsLoaderDefinition = $containerBuilder->getDefinition('Twig_Loader_Filesystem' . $serviceSuffix); $providerIds = $containerBuilder->findTaggedServiceIds('tubepress_spi_template_PathProviderInterface' . $serviceSuffix); foreach ($providerIds as $providerId => $tags) { /* * @var tubepress_spi_template_PathProviderInterface */ $provider = $containerBuilder->get($providerId); $directories = $provider->getTemplateDirectories(); foreach ($directories as $directory) { if (is_dir($directory)) { $twigFsLoaderDefinition->addMethodCall('addPath', array($directory)); } } } }
/** * {@inheritdoc} */ public function process(tubepress_api_ioc_ContainerBuilderInterface $containerBuilder) { if (!$containerBuilder->hasDefinition(tubepress_api_event_EventDispatcherInterface::_)) { return; } $eventDispatcherDefinition = $containerBuilder->getDefinition(tubepress_api_event_EventDispatcherInterface::_); $listenerServiceIds = $containerBuilder->findTaggedServiceIds(tubepress_api_ioc_ServiceTags::EVENT_LISTENER); foreach ($listenerServiceIds as $serviceId => $events) { foreach ($events as $event) { $priority = isset($event['priority']) ? $event['priority'] : 0; if (!isset($event['event'])) { throw new InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "%s" tags.', $serviceId, tubepress_api_ioc_ServiceTags::EVENT_LISTENER)); } if (!isset($event['method'])) { $onSuffix = preg_replace_callback(array('/(?<=\\b)[a-z]/i', '/[^a-z0-9]/i'), array($this, '_callbackStrToUpper'), $event['event']); $event['method'] = 'on' . $onSuffix; $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']); } $eventDispatcherDefinition->addMethodCall('addListenerService', array($event['event'], array($serviceId, $event['method']), $priority)); } } }
/** * {@inheritdoc} */ public function process(tubepress_api_ioc_ContainerBuilderInterface $containerBuilder) { if (!$containerBuilder->hasDefinition(tubepress_api_http_oauth2_Oauth2EnvironmentInterface::_)) { $containerBuilder->register(tubepress_api_http_oauth2_Oauth2EnvironmentInterface::_, 'tubepress_http_oauth2_impl_Oauth2Environment'); } }