custom/plugins/FroshDevelopmentHelper/src/FroshDevelopmentHelper.php line 22

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Frosh\DevelopmentHelper;
  3. use Frosh\DevelopmentHelper\Component\DependencyInjection\BuildEntityDefinitionNamesCompilerPass;
  4. use Frosh\DevelopmentHelper\Component\DependencyInjection\CustomProfilerExtensions;
  5. use Frosh\DevelopmentHelper\Component\DependencyInjection\DisableTwigCacheCompilerPass;
  6. use Frosh\DevelopmentHelper\Component\DependencyInjection\FroshDevelopmentHelperExtension;
  7. use Shopware\Core\Framework\Plugin;
  8. use Shopware\Core\Kernel;
  9. use Symfony\Component\Config\FileLocator;
  10. use Symfony\Component\Config\Loader\DelegatingLoader;
  11. use Symfony\Component\Config\Loader\LoaderResolver;
  12. use Symfony\Component\DependencyInjection\Loader\GlobFileLoader;
  13. use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
  14. use Symfony\Component\DependencyInjection\ContainerBuilder;
  15. if (file_exists(__DIR__ '/../vendor/autoload.php')) {
  16.     require_once __DIR__ '/../vendor/autoload.php';
  17. }
  18. class FroshDevelopmentHelper extends Plugin
  19. {
  20.     public function build(ContainerBuilder $container): void
  21.     {
  22.         $container->addCompilerPass(new DisableTwigCacheCompilerPass());
  23.         $container->addCompilerPass(new CustomProfilerExtensions());
  24.         $container->addCompilerPass(new BuildEntityDefinitionNamesCompilerPass());
  25.         $this->buildConfig($container);
  26.         parent::build($container);
  27.     }
  28.     public function createContainerExtension(): FroshDevelopmentHelperExtension
  29.     {
  30.         return new FroshDevelopmentHelperExtension();
  31.     }
  32.     private function buildConfig(ContainerBuilder $container): void
  33.     {
  34.         $locator = new FileLocator('Resources/config');
  35.         $resolver = new LoaderResolver([
  36.             new YamlFileLoader($container$locator),
  37.             new GlobFileLoader($container$locator),
  38.         ]);
  39.         $configLoader = new DelegatingLoader($resolver);
  40.         $confDir $this->getPath() . '/Resources/config';
  41.         $configLoader->load($confDir '/{packages}/*' Kernel::CONFIG_EXTS'glob');
  42.     }
  43. }