[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/phpbb/di/pass/ -> collection_pass.php (source)

   1  <?php
   2  /**
   3  *
   4  * This file is part of the phpBB Forum Software package.
   5  *
   6  * @copyright (c) phpBB Limited <https://www.phpbb.com>
   7  * @license GNU General Public License, version 2 (GPL-2.0)
   8  *
   9  * For full copyright and license information, please see
  10  * the docs/CREDITS.txt file.
  11  *
  12  */
  13  
  14  namespace phpbb\di\pass;
  15  
  16  use Symfony\Component\DependencyInjection\ContainerBuilder;
  17  use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
  18  
  19  /**
  20  * Appends an add method call to the definition of each collection service for
  21  * the services tagged with the appropriate name defined in the collection's
  22  * service_collection tag.
  23  */
  24  class collection_pass implements CompilerPassInterface
  25  {
  26      /**
  27      * Modify the container before it is passed to the rest of the code
  28      *
  29      * @param ContainerBuilder $container ContainerBuilder object
  30      * @return null
  31      */
  32  	public function process(ContainerBuilder $container)
  33      {
  34          foreach ($container->findTaggedServiceIds('service_collection') as $id => $data)
  35          {
  36              $definition = $container->getDefinition($id);
  37  
  38              foreach ($container->findTaggedServiceIds($data[0]['tag']) as $service_id => $service_data)
  39              {
  40                  $definition->addMethodCall('add', array($service_id));
  41              }
  42          }
  43      }
  44  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1