vendor/xcart/dto-generator-bundle/src/DTOGeneratorBundle.php line 45

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2011-present Qualiteam software Ltd. All rights reserved.
  4.  * See https://www.x-cart.com/license-agreement.html for license details.
  5.  */
  6. namespace XCart\Bundle\DTOGeneratorBundle;
  7. use Symfony\Component\DependencyInjection\Compiler\PassConfig;
  8. use Symfony\Component\DependencyInjection\ContainerBuilder;
  9. use Symfony\Component\HttpKernel\Bundle\Bundle;
  10. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\BuilderPass;
  11. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\CollectionGenerationPass;
  12. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\CRUDRegistrationPass;
  13. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\DTOGenerationPass;
  14. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\EnumerationGenerationPass;
  15. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\FactoryGenerationPass;
  16. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\FactoryInterfaceGenerationPass;
  17. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateDataSourceReadInterfacesPass;
  18. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateDataSourcesPass;
  19. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateDataSourceWriteInterfacesPass;
  20. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateQueryBuilderInterfacesPass;
  21. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateQueryBuildersPass;
  22. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateReadRepositoryInterfacesPass;
  23. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateRepositoriesPass;
  24. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\GenerateWriteRepositoryInterfacesPass;
  25. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\HashMapGenerationPass;
  26. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\InitializationPass;
  27. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\LogicToDoctrineFilterTransformersRegisterPass;
  28. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\LogicToDoctrineOrderRuleTransformersRegisterPass;
  29. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\NormalizationPass;
  30. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\PreparationPass;
  31. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterReadDataSourcesPass;
  32. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterReadQueryBuilderFactoriesPass;
  33. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterReadRepositoriesPass;
  34. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterWriteDataSourcesPass;
  35. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterWriteQueryBuilderFactoriesPass;
  36. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegisterWriteRepositoriesPass;
  37. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\RegistrationPass;
  38. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\ServiceLocatorsRegistrationPass;
  39. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\TransformerGenerationPass;
  40. use XCart\Bundle\DTOGeneratorBundle\DependencyInjection\Compiler\UpdateGeneratedEntitiesPass;
  41. class DTOGeneratorBundle extends Bundle
  42. {
  43.     public function boot(): void
  44.     {
  45.         parent::boot();
  46.         if ($this->container->has('xcart.dto_generator.autoloader')) {
  47.             $this->container->get('xcart.dto_generator.autoloader')->register();
  48.         }
  49.     }
  50.     public function build(ContainerBuilder $container): void
  51.     {
  52.         parent::build($container);
  53.         $container->addCompilerPass(new InitializationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION700);
  54.         $container->addCompilerPass(new UpdateGeneratedEntitiesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION699);
  55.         $container->addCompilerPass(new BuilderPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION610);
  56.         $container->addCompilerPass(new NormalizationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION600);
  57.         $container->addCompilerPass(new PreparationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION550);
  58.         $container->addCompilerPass(new DTOGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  59.         $container->addCompilerPass(new CollectionGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  60.         $container->addCompilerPass(new TransformerGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  61.         $container->addCompilerPass(new EnumerationGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  62.         $container->addCompilerPass(new HashMapGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  63.         $container->addCompilerPass(new FactoryGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  64.         $container->addCompilerPass(new FactoryInterfaceGenerationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION510);
  65.         $container->addCompilerPass(new RegistrationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION502);
  66.         $container->addCompilerPass(new ServiceLocatorsRegistrationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION500);
  67.         $container->addCompilerPass(new GenerateRepositoriesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION450);
  68.         $container->addCompilerPass(new GenerateQueryBuildersPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION448);
  69.         $container->addCompilerPass(new GenerateQueryBuilderInterfacesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION446);
  70.         $container->addCompilerPass(new GenerateReadRepositoryInterfacesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION444);
  71.         $container->addCompilerPass(new GenerateWriteRepositoryInterfacesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION444);
  72.         $container->addCompilerPass(new GenerateDataSourcesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION442);
  73.         $container->addCompilerPass(new GenerateDataSourceReadInterfacesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION440);
  74.         $container->addCompilerPass(new GenerateDataSourceWriteInterfacesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION440);
  75.         $container->addCompilerPass(new LogicToDoctrineFilterTransformersRegisterPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  76.         $container->addCompilerPass(new LogicToDoctrineOrderRuleTransformersRegisterPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  77.         $container->addCompilerPass(new RegisterReadRepositoriesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  78.         $container->addCompilerPass(new RegisterReadQueryBuilderFactoriesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  79.         $container->addCompilerPass(new RegisterWriteRepositoriesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  80.         $container->addCompilerPass(new RegisterWriteQueryBuilderFactoriesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  81.         $container->addCompilerPass(new RegisterReadDataSourcesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  82.         $container->addCompilerPass(new RegisterWriteDataSourcesPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  83.         $container->addCompilerPass(new CRUDRegistrationPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION400);
  84.     }
  85. }