/**
  * {@inheritDoc}
  */
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     parent::initialize($input, $output);
     if ($input->getOption('em')) {
         CommandHelper::setApplicationEntityManager($this->getHelper('container'), $input->getOption('em'));
     }
     $this->cacheCleaner->invalidate();
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $registry = $this->container->getDoctrine();
     $em = $registry->getManager($input->getOption('em'));
     $con = $registry->getConnection($input->getOption('con'));
     $helperSet = $this->getApplication()->getHelperSet();
     $helperSet->set(new EntityManagerHelper($em), 'em');
     parent::execute($input, $output);
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $em = $this->get('entity_manager');
     $helperSet = new HelperSet();
     $helperSet->set(new ConnectionHelper($em->getConnection()), 'db');
     $helperSet->set(new EntityManagerHelper($em), 'em');
     $command = new GenerateProxiesCommand();
     $command->setHelperSet($helperSet);
     $arguments = array();
     if ($input->getOption('filter')) {
         $arguments['--filter'] = $input->getOption('filter');
     }
     if ($input->getArgument('dest-path')) {
         $arguments['dest-path'] = $input->getArgument('dest-path');
     }
     $returnCode = $command->run(new ArrayInput($arguments), $output);
     return $returnCode;
 }
 /**
  * @param string $toType
  * @param string $destPath
  *
  * @return \Doctrine\ORM\Tools\Export\Driver\AbstractExporter
  */
 protected function getExporter($toType, $destPath)
 {
     /** @var $exporter \Doctrine\ORM\Tools\Export\Driver\AbstractExporter */
     $exporter = parent::getExporter($toType, $destPath);
     if ($exporter instanceof XmlExporter) {
         $exporter->setExtension('.orm.xml');
     } elseif ($exporter instanceof YamlExporter) {
         $exporter->setExtension('.orm.yml');
     }
     return $exporter;
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     DoctrineCommand::setApplicationEntityManager($this->application, $input->getOption('em'));
     return parent::execute($input, $output);
 }
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     parent::initialize($input, $output);
     Debugger::$productionMode = !$input->getOption('debug-mode');
     $this->cacheCleaner->invalidate();
 }
 protected function configure()
 {
     parent::configure();
     $this->setName('generate-proxies');
 }
 public function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
 }
 protected function initialize(InputInterface $input, OutputInterface $output)
 {
     parent::initialize($input, $output);
     $this->cacheCleaner->invalidate();
 }
 /**
  * Registers services on the given app.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Application $app An Application instance
  */
 public function register(Application $app)
 {
     $app['orm.default.parameters'] = array('orm.cache.dir' => __DIR__ . '/../../../../../cache/orm', 'orm.entity.path' => array(), 'orm.proxy.dir' => __DIR__ . '/../../../../../cache/proxies', 'orm.proxy.namespace' => 'Doctrine\\ORM\\Proxies');
     foreach ($app['orm.default.parameters'] as $key => $value) {
         if (!isset($app[$key])) {
             $app[$key] = $value;
         }
     }
     /**
      * @param  Application $app
      *
      * @return \Doctrine\Common\Cache\Cache
      */
     $app['orm.cache.driver'] = function (Application $app) {
         if (extension_loaded('apc')) {
             return new ApcCache();
         } else {
             return new FilesystemCache($app['orm.cache.dir']);
         }
     };
     /**
      * @param  Application $app
      *
      * @return \Doctrine\ORM\Configuration
      */
     $app['orm.config'] = $app->share(function (Application $app) {
         $config = new Configuration();
         $config->setMetadataCacheImpl($app['orm.cache.driver']);
         $config->setMetadataDriverImpl($config->newDefaultAnnotationDriver($app['orm.entity.path']));
         $config->setQueryCacheImpl($app['orm.cache.driver']);
         $config->setProxyDir($app['orm.proxy.dir']);
         $config->setProxyNamespace($app['orm.proxy.namespace']);
         $config->setAutoGenerateProxyClasses($app['debug']);
         return $config;
     });
     /**
      * @param  Application $app
      *
      * @throws \RuntimeException
      *
      * @return \Doctrine\ORM\EntityManager
      */
     $app['orm.em'] = $app->share(function (Application $app) {
         if (!isset($app['db'])) {
             throw new \RuntimeException('DoctrineServiceProvider is not registered');
         }
         return EntityManager::create($app['db'], $app['orm.config'], $app['db.event_manager']);
     });
     /**
      * @param  Application $app
      *
      * @return \Doctrine\ORM\Tools\SchemaTool
      */
     $app['orm.schema_tool'] = $app->share(function (Application $app) {
         return new SchemaTool($app['orm.em']);
     });
     /*
      * Register console commands for doctrine if `kzykhys/console-service-provider` is registered
      */
     if (isset($app['console.commands'])) {
         $app['console'] = $app->share($app->extend('console', function (Console $console, Application $app) {
             $console->getHelperSet()->set(new ConnectionHelper($app['db']), 'db');
             $console->getHelperSet()->set(new EntityManagerHelper($app['orm.em']), 'em');
             return $console;
         }));
         $app['console.commands'] = $app->share($app->extend('console.commands', function (array $commands) {
             $create = new CreateCommand();
             $update = new UpdateCommand();
             $drop = new DropCommand();
             $generateEntity = new GenerateEntitiesCommand();
             $generateProxy = new GenerateProxiesCommand();
             $commands[] = $create->setName('doctrine:schema:create');
             $commands[] = $update->setName('doctrine:schema:update');
             $commands[] = $drop->setName('doctrine:schema:drop');
             $commands[] = $generateEntity->setName('doctrine:generate:entities');
             $commands[] = $generateProxy->setName('doctrine:generate:proxies');
             return $commands;
         }));
     }
 }