[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
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 $is_ordered_collection = (substr($definition->getClass(), -strlen('ordered_service_collection')) === 'ordered_service_collection'); 38 $is_class_name_aware = (isset($data[0]['class_name_aware']) && $data[0]['class_name_aware']); 39 40 foreach ($container->findTaggedServiceIds($data[0]['tag']) as $service_id => $service_data) 41 { 42 if ($is_ordered_collection) 43 { 44 $arguments = array($service_id, $service_data[0]['order']); 45 } 46 else 47 { 48 $arguments = array($service_id); 49 } 50 51 if ($is_class_name_aware) 52 { 53 $service_definition = $container->getDefinition($service_id); 54 $definition->addMethodCall('add_service_class', array( 55 $service_id, 56 $service_definition->getClass() 57 )); 58 } 59 60 $definition->addMethodCall('add', $arguments); 61 } 62 } 63 } 64 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |