[DoctrineBundle] removed DoctrineExtension constructor
This commit is contained in:
parent
ac8e1e29e9
commit
0f30e539b1
@ -30,16 +30,6 @@ class DoctrineExtension extends Extension
|
||||
'dbal' => 'dbal.xml',
|
||||
'orm' => 'orm.xml',
|
||||
);
|
||||
protected $bundleDirs;
|
||||
protected $bundles;
|
||||
protected $kernelCacheDir;
|
||||
|
||||
public function __construct(array $bundleDirs, array $bundles, $kernelCacheDir)
|
||||
{
|
||||
$this->bundleDirs = $bundleDirs;
|
||||
$this->bundles = $bundles;
|
||||
$this->kernelCacheDir = $kernelCacheDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the DBAL configuration.
|
||||
@ -69,7 +59,7 @@ class DoctrineExtension extends Extension
|
||||
*/
|
||||
public function ormLoad($config, ContainerBuilder $container)
|
||||
{
|
||||
$this->createOrmProxyDirectory();
|
||||
$this->createOrmProxyDirectory($container->getParameter('kernel.cache_dir'));
|
||||
$this->loadOrmDefaults($config, $container);
|
||||
$this->loadOrmEntityManagers($config, $container);
|
||||
}
|
||||
@ -196,10 +186,10 @@ class DoctrineExtension extends Extension
|
||||
/**
|
||||
* Create the Doctrine ORM Entity proxy directory
|
||||
*/
|
||||
protected function createOrmProxyDirectory()
|
||||
protected function createOrmProxyDirectory($tmpDir)
|
||||
{
|
||||
// Create entity proxy directory
|
||||
$proxyCacheDir = $this->kernelCacheDir . '/doctrine/orm/Proxies';
|
||||
$proxyCacheDir = $tmpDir.'/doctrine/orm/Proxies';
|
||||
if (!is_dir($proxyCacheDir)) {
|
||||
if (false === @mkdir($proxyCacheDir, 0777, true)) {
|
||||
die(sprintf('Unable to create the Doctrine Proxy directory (%s)', dirname($proxyCacheDir)));
|
||||
@ -265,7 +255,7 @@ class DoctrineExtension extends Extension
|
||||
protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $container)
|
||||
{
|
||||
$defaultEntityManager = $container->getParameter('doctrine.orm.default_entity_manager');
|
||||
$proxyCacheDir = $this->kernelCacheDir . '/doctrine/orm/Proxies';
|
||||
$proxyCacheDir = $container->getParameter('kernel.cache_dir').'/doctrine/orm/Proxies';
|
||||
|
||||
$ormConfigDef = new Definition('Doctrine\ORM\Configuration');
|
||||
$container->setDefinition(sprintf('doctrine.orm.%s_configuration', $entityManager['name']), $ormConfigDef);
|
||||
@ -338,9 +328,9 @@ class DoctrineExtension extends Extension
|
||||
// configure metadata driver for each bundle based on the type of mapping files found
|
||||
$mappingDriverDef = new Definition('%doctrine.orm.metadata.driver_chain_class%');
|
||||
$bundleEntityMappings = array();
|
||||
$bundleDirs = $this->bundleDirs;
|
||||
$bundleDirs = $container->getParameter('kernel.bundle_dirs');
|
||||
$aliasMap = array();
|
||||
foreach ($this->bundles as $className) {
|
||||
foreach ($container->getParameter('kernel.bundles') as $className) {
|
||||
$tmp = dirname(str_replace('\\', '/', $className));
|
||||
$namespace = str_replace('/', '\\', dirname($tmp));
|
||||
$class = basename($tmp);
|
||||
@ -464,7 +454,7 @@ class DoctrineExtension extends Extension
|
||||
protected function findBundleSubpaths($path, ContainerBuilder $container)
|
||||
{
|
||||
$dirs = array();
|
||||
foreach ($this->bundles as $bundle) {
|
||||
foreach ($container->getParameter('kernel.bundles') as $bundle) {
|
||||
$reflection = new \ReflectionClass($bundle);
|
||||
if (is_dir($dir = dirname($reflection->getFilename()).'/'.$path)) {
|
||||
$dirs[] = $dir;
|
||||
|
@ -33,10 +33,6 @@ class DoctrineBundle extends Bundle
|
||||
*/
|
||||
public function buildContainer(ParameterBagInterface $parameterBag)
|
||||
{
|
||||
ContainerBuilder::registerExtension(new DoctrineExtension(
|
||||
$parameterBag->get('kernel.bundle_dirs'),
|
||||
$parameterBag->get('kernel.bundles'),
|
||||
$parameterBag->get('kernel.cache_dir')
|
||||
));
|
||||
ContainerBuilder::registerExtension(new DoctrineExtension());
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ namespace Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection;
|
||||
use Symfony\Bundle\DoctrineBundle\Tests\TestCase;
|
||||
use Symfony\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension;
|
||||
use Symfony\Components\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Components\DependencyInjection\ParameterBag\ParameterBag;
|
||||
use Symfony\Components\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Components\DependencyInjection\Loader\YamlFileLoader;
|
||||
|
||||
@ -23,8 +24,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testDbalLoad()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$this->assertEquals('Symfony\\Bundle\\DoctrineBundle\\DataCollector\\DoctrineDataCollector', $container->getParameter('doctrine.data_collector.class'), '->dbalLoad() loads the dbal.xml file if not already loaded');
|
||||
@ -36,8 +37,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$this->assertEquals('foo', $container->getParameter('doctrine.dbal.default_connection'), '->dbalLoad() overrides existing configuration options');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$loader->dbalLoad(array('password' => 'foo'), $container);
|
||||
|
||||
$arguments = $container->getDefinition('doctrine.dbal.default_connection')->getArguments();
|
||||
@ -53,8 +54,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testDbalLoadFromXmlMultipleConnections()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$loadXml = new XmlFileLoader($container, __DIR__.'/Fixtures/config/xml');
|
||||
@ -73,8 +74,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
// doctrine.dbal.sqlite_connection
|
||||
$arguments = $container->getDefinition('doctrine.dbal.sqlite_connection')->getArguments();
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$loadXml = new XmlFileLoader($container, __DIR__.'/Fixtures/config/xml');
|
||||
@ -94,8 +95,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testDependencyInjectionConfigurationDefaults()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -169,8 +170,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testSingleEntityManagerConfiguration()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -191,8 +192,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testLoadSimpleSingleConnection()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
@ -225,8 +226,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testLoadSingleConnection()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'orm_service_single_entity_manager');
|
||||
@ -256,8 +257,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testLoadMultipleConnections()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'orm_service_multiple_entity_managers');
|
||||
@ -318,8 +319,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testBundleEntityAliases()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -332,8 +333,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testYamlBundleMappingDetection()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader('YamlBundle');
|
||||
$container = $this->getContainer('YamlBundle');
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -350,8 +351,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testXmlBundleMappingDetection()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader('XmlBundle');
|
||||
$container = $this->getContainer('XmlBundle');
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -368,8 +369,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testAnnotationsBundleMappingDetection()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader('AnnotationsBundle');
|
||||
$container = $this->getContainer('AnnotationsBundle');
|
||||
$loader = new DoctrineExtension();
|
||||
|
||||
$loader->dbalLoad(array(), $container);
|
||||
$loader->ormLoad(array(), $container);
|
||||
@ -386,8 +387,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testEntityManagerMetadataCacheDriverConfiguration()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'orm_service_multiple_entity_managers');
|
||||
@ -403,8 +404,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testEntityManagerMemcacheMetadataCacheDriverConfiguration()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'orm_service_simple_single_entity_manager');
|
||||
@ -429,8 +430,8 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
|
||||
public function testDependencyInjectionImportsOverrideDefaults()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = $this->getDoctrineExtensionLoader();
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'orm_imports');
|
||||
@ -441,11 +442,14 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
||||
$this->assertTrue($container->getParameter('doctrine.orm.auto_generate_proxy_classes'));
|
||||
}
|
||||
|
||||
protected function getDoctrineExtensionLoader($bundle = 'YamlBundle')
|
||||
protected function getContainer($bundle = 'YamlBundle')
|
||||
{
|
||||
require_once __DIR__.'/Fixtures/Bundles/'.$bundle.'/'.$bundle.'.php';
|
||||
$bundleDirs = array('DoctrineBundle\\Tests\\DependencyInjection\\Fixtures\\Bundles' => __DIR__.'/Fixtures/Bundles');
|
||||
$bundles = array('DoctrineBundle\\Tests\DependencyInjection\\Fixtures\\Bundles\\'.$bundle.'\\'.$bundle);
|
||||
return new DoctrineExtension($bundleDirs, $bundles, sys_get_temp_dir());
|
||||
|
||||
return new ContainerBuilder(new ParameterBag(array(
|
||||
'kernel.bundle_dirs' => array('DoctrineBundle\\Tests\\DependencyInjection\\Fixtures\\Bundles' => __DIR__.'/Fixtures/Bundles'),
|
||||
'kernel.bundles' => array('DoctrineBundle\\Tests\DependencyInjection\\Fixtures\\Bundles\\'.$bundle.'\\'.$bundle),
|
||||
'kernel.cache_dir' => sys_get_temp_dir(),
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user