src/Eccube/Command/GenerateProxyCommand.php line 22

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Eccube\Command;
  13. use Doctrine\Common\Annotations\AnnotationRegistry;
  14. use Eccube\Service\EntityProxyService;
  15. use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
  16. use Symfony\Component\Console\Input\InputInterface;
  17. use Symfony\Component\Console\Output\OutputInterface;
  18. class GenerateProxyCommand extends ContainerAwareCommand
  19. {
  20.     protected static $defaultName 'eccube:generate:proxies';
  21.     /**
  22.      * @var EntityProxyService
  23.      */
  24.     private $entityProxyService;
  25.     public function __construct(EntityProxyService $entityProxyService)
  26.     {
  27.         parent::__construct();
  28.         $this->entityProxyService $entityProxyService;
  29.     }
  30.     protected function configure()
  31.     {
  32.         $this
  33.             ->setDescription('Generate entity proxies');
  34.     }
  35.     protected function execute(InputInterface $inputOutputInterface $output)
  36.     {
  37.         // アノテーションを読み込めるように設定.
  38.         AnnotationRegistry::registerAutoloadNamespace('Eccube\Annotation'__DIR__.'/../../../src');
  39.         $container $this->getContainer();
  40.         $projectDir $container->getParameter('kernel.project_dir');
  41.         $includeDirs = [$projectDir.'/app/Customize/Entity'];
  42.         $enabledPlugins $container->getParameter('eccube.plugins.enabled');
  43.         foreach ($enabledPlugins as $code) {
  44.             if (file_exists($projectDir.'/app/Plugin/'.$code.'/Entity')) {
  45.                 $includeDirs[] = $projectDir.'/app/Plugin/'.$code.'/Entity';
  46.             }
  47.         }
  48.         $this->entityProxyService->generate(
  49.             $includeDirs,
  50.             [],
  51.             $projectDir.'/app/proxy/entity',
  52.             $output
  53.         );
  54.         return 0;
  55.     }
  56. }