‪TYPO3CMS  ‪main
Services.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 namespace ‪TYPO3\CMS\Extbase;
6 
7 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
8 use Symfony\Component\DependencyInjection\ContainerBuilder;
9 use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
12 
13 return static function (ContainerConfigurator $containerConfigurator, ContainerBuilder $container) {
14  $container->registerForAutoconfiguration(Mvc\Controller\ControllerInterface::class)->addTag('extbase.controller');
15  $container->registerForAutoconfiguration(Mvc\Controller\ActionController::class)->addTag('extbase.action_controller');
16  $container->registerForAutoconfiguration(Validation\Validator\ValidatorInterface::class)->addTag('extbase.validator');
17  $container->addCompilerPass(new ‪PublicServicePass('extbase.validator', true));
18 
19  $container->addCompilerPass(new class () implements CompilerPassInterface {
20  public function process(ContainerBuilder $container): void
21  {
22  foreach ($container->findTaggedServiceIds('extbase.controller') as $id => $tags) {
23  $container->findDefinition($id)->setPublic(true);
24  }
25  foreach ($container->findTaggedServiceIds('extbase.action_controller') as $id => $tags) {
26  $container->findDefinition($id)->setShared(false);
27  }
28  }
29  });
30 
31  $container->addCompilerPass(new ‪TypeConverterPass('extbase.type_converter'));
32 };
‪TYPO3\CMS\Extbase
‪TYPO3\CMS\Extbase\DependencyInjection\TypeConverterPass
Definition: TypeConverterPass.php:32
‪TYPO3\CMS\Core\DependencyInjection\PublicServicePass
Definition: PublicServicePass.php:27