Guest User

Untitled

a guest
May 21st, 2018
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Symfony\Framework\DoctrineBundle;
  4.  
  5. use Symfony\Foundation\Bundle\Bundle as BaseBundle;
  6. use Symfony\Components\DependencyInjection\ContainerInterface;
  7. use Symfony\Components\DependencyInjection\Loader\Loader;
  8. use Symfony\Components\DependencyInjection\Loader\XmlFileLoader;
  9. use Symfony\Framework\DoctrineBundle\DependencyInjection\DoctrineExtension;
  10. use Symfony\Components\Console\Application;
  11.  
  12. /*
  13. * This file is part of the Symfony framework.
  14. *
  15. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  16. *
  17. * This source file is subject to the MIT license that is bundled
  18. * with this source code in the file LICENSE.
  19. */
  20.  
  21. /**
  22. * Bundle.
  23. *
  24. * @package Symfony
  25. * @subpackage Framework_DoctrineBundle
  26. * @author Fabien Potencier <fabien.potencier@symfony-project.com>
  27. * @author Jonathan H. Wage <jonwage@gmail.com>
  28. */
  29. class Bundle extends BaseBundle
  30. {
  31. public function buildContainer(ContainerInterface $container)
  32. {
  33. Loader::registerExtension(new DoctrineExtension($container->getParameter('kernel.bundle_dirs'), $container->getParameter('kernel.bundles')));
  34.  
  35. $metadataDirs = array();
  36. $entityDirs = array();
  37. $bundleDirs = $container->getParameter('kernel.bundle_dirs');
  38. foreach ($container->getParameter('kernel.bundles') as $className)
  39. {
  40. $tmp = dirname(str_replace('\\', '/', $className));
  41. $namespace = str_replace('/', '\\', dirname($tmp));
  42. $class = basename($tmp);
  43.  
  44. if (isset($bundleDirs[$namespace]))
  45. {
  46. if (is_dir($dir = $bundleDirs[$namespace].'/'.$class.'/Resources/config/doctrine/metadata'))
  47. {
  48. $metadataDirs[] = realpath($dir);
  49. }
  50. if (is_dir($dir = $bundleDirs[$namespace].'/'.$class.'/Entities'))
  51. {
  52. $entityDirs[] = realpath($dir);
  53. }
  54. }
  55. }
  56. $container->setParameter('doctrine.orm.metadata_driver.mapping_dirs', $metadataDirs);
  57. $container->setParameter('doctrine.orm.entity_dirs', $entityDirs);
  58. }
  59.  
  60. public function registerCommands(Application $application)
  61. {
  62. $application->addCommands(array(
  63. // DBAL Commands
  64. new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
  65. new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),
  66.  
  67. // ORM Commands
  68. new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(),
  69. new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(),
  70. new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(),
  71. new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(),
  72. new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(),
  73. new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(),
  74. new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(),
  75. new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(),
  76. new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(),
  77. new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(),
  78. new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(),
  79. new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(),
  80. new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand()
  81. ));
  82.  
  83. $em = $application->getKernel()->getContainer()->getDoctrine_Orm_DefaultEntityManagerService();
  84. $application->getHelperSet()->set(new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()), 'db');
  85. $application->getHelperSet()->set(new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em), 'em');
  86. }
  87. }
Add Comment
Please, Sign In to add comment