1 | <?php |
||
27 | final class AutowireControllerDependenciesPass implements CompilerPassInterface |
||
28 | { |
||
29 | /** |
||
30 | * @var ControllerClassMapInterface |
||
31 | */ |
||
32 | private $controllerClassMap; |
||
33 | |||
34 | /** |
||
35 | * @var ContainerBuilder |
||
36 | */ |
||
37 | private $containerBuilder; |
||
38 | |||
39 | /** |
||
40 | * @var array[] |
||
41 | */ |
||
42 | private $traitsToSettersToServiceNameList = [ |
||
43 | ControllerFlashTrait::class => [ |
||
44 | 'setSession' => 'session', |
||
45 | ], |
||
46 | ControllerDoctrineTrait::class => [ |
||
47 | 'setDoctrine' => 'doctrine', |
||
48 | ], |
||
49 | ControllerRoutingTrait::class => [ |
||
50 | 'setRouter' => 'router', |
||
51 | ], |
||
52 | ControllerHttpKernelTrait::class => [ |
||
53 | 'setHttpKernel' => 'http_kernel', |
||
54 | 'setRequestStack' => 'request_stack', |
||
55 | ], |
||
56 | ControllerSerializerTrait::class => [ |
||
57 | 'setSerializer' => 'serializer', |
||
58 | ], |
||
59 | ControllerSecurityTrait::class => [ |
||
60 | 'setAuthorizationChecker' => 'security.authorization_checker', |
||
61 | 'setTokenStorage' => 'security.token_storage', |
||
62 | 'setCsrfTokenManager' => 'security.csrf.token_manager', |
||
63 | ], |
||
64 | ControllerRenderTrait::class => [ |
||
65 | 'setTemplating' => 'templating', |
||
66 | 'setTwig' => 'twig', |
||
67 | ], |
||
68 | ControllerFormTrait::class => [ |
||
69 | 'setFormFactory' => 'form.factory', |
||
70 | ], |
||
71 | ]; |
||
72 | |||
73 | public function __construct(ControllerClassMapInterface $controllerClassMap) |
||
77 | |||
78 | public function process(ContainerBuilder $containerBuilder) |
||
87 | |||
88 | private function autowireControllerTraits(Definition $controllerDefinition) |
||
106 | |||
107 | private function isTraitIncluded(string $traitClass, array $usedTraits) : bool |
||
119 | } |
||
120 |