[DoctrineBundle] removed the need to pass the container to the extension (which is dangerous)

This commit is contained in:
Fabien Potencier 2010-03-01 12:30:23 +01:00
parent 635135a4e0
commit 3fbe294461
2 changed files with 8 additions and 6 deletions

View File

@ -28,7 +28,7 @@ class Bundle extends BaseBundle
{ {
public function buildContainer(ContainerInterface $container) public function buildContainer(ContainerInterface $container)
{ {
Loader::registerExtension(new DoctrineExtension($container)); Loader::registerExtension(new DoctrineExtension($container->getParameter('kernel.bundle_dirs'), $container->getParameter('kernel.bundles')));
$metadataDirs = array(); $metadataDirs = array();
$entityDirs = array(); $entityDirs = array();

View File

@ -7,7 +7,6 @@ use Symfony\Components\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Components\DependencyInjection\BuilderConfiguration; use Symfony\Components\DependencyInjection\BuilderConfiguration;
use Symfony\Components\DependencyInjection\Definition; use Symfony\Components\DependencyInjection\Definition;
use Symfony\Components\DependencyInjection\Reference; use Symfony\Components\DependencyInjection\Reference;
use Symfony\Components\DependencyInjection\Container;
/* /*
* This file is part of the symfony framework. * This file is part of the symfony framework.
@ -33,10 +32,13 @@ class DoctrineExtension extends LoaderExtension
); );
protected $alias; protected $alias;
protected $bundleDirs;
protected $bundles;
public function __construct(Container $container) public function __construct(array $bundleDirs, array $bundles)
{ {
$this->container = $container; $this->bundleDirs = $bundleDirs;
$this->bundles = $bundles;
} }
public function setAlias($alias) public function setAlias($alias)
@ -197,8 +199,8 @@ class DoctrineExtension extends LoaderExtension
// configure metadata driver for each bundle based on the type of mapping files found // configure metadata driver for each bundle based on the type of mapping files found
$mappingDriverDef = new Definition('Doctrine\ORM\Mapping\Driver\DriverChain'); $mappingDriverDef = new Definition('Doctrine\ORM\Mapping\Driver\DriverChain');
$bundleEntityMappings = array(); $bundleEntityMappings = array();
$bundleDirs = $this->container->getParameter('kernel.bundle_dirs'); $bundleDirs = $this->bundleDirs;
foreach ($this->container->getParameter('kernel.bundles') as $className) foreach ($this->bundles as $className)
{ {
$tmp = dirname(str_replace('\\', '/', $className)); $tmp = dirname(str_replace('\\', '/', $className));
$namespace = str_replace('/', '\\', dirname($tmp)); $namespace = str_replace('/', '\\', dirname($tmp));