Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / lib / Drupal / Core / DependencyInjection / Compiler / ModifyServiceDefinitionsPass.php
1 <?php
2
3 namespace Drupal\Core\DependencyInjection\Compiler;
4
5 use Drupal\Core\DrupalKernelInterface;
6 use Drupal\Core\DependencyInjection\ServiceModifierInterface;
7 use Symfony\Component\DependencyInjection\ContainerBuilder;
8 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
9
10 /**
11  * Passes the container to the alter() method of all service providers.
12  */
13 class ModifyServiceDefinitionsPass implements CompilerPassInterface {
14
15   /**
16    * {@inheritdoc}
17    */
18   public function process(ContainerBuilder $container) {
19     if (!$container->has('kernel')) {
20       return;
21     }
22
23     $kernel = $container->get('kernel');
24     if (!($kernel instanceof DrupalKernelInterface)) {
25       return;
26     }
27     $providers = $kernel->getServiceProviders('app');
28     foreach ($providers as $provider) {
29       if ($provider instanceof ServiceModifierInterface) {
30         $provider->alter($container);
31       }
32     }
33     $providers = $kernel->getServiceProviders('site');
34     foreach ($providers as $provider) {
35       if ($provider instanceof ServiceModifierInterface) {
36         $provider->alter($container);
37       }
38     }
39   }
40
41 }