[HttpKernel] allowed bundle names to have 'bundle' in their base name

This commit is contained in:
Fabien Potencier 2011-04-28 08:55:43 +02:00
parent 40d256e058
commit 77f9daf374

View File

@ -65,12 +65,14 @@ abstract class Bundle extends ContainerAware implements BundleInterface
public function getContainerExtension() public function getContainerExtension()
{ {
if (null === $this->extension) { if (null === $this->extension) {
$class = $this->getNamespace().'\\DependencyInjection\\'.str_replace('Bundle', 'Extension', $this->getName()); $basename = preg_replace('/Bundle$/', '', $this->getName());
$class = $this->getNamespace().'\\DependencyInjection\\'.$basename.'Extension';
if (class_exists($class)) { if (class_exists($class)) {
$extension = new $class(); $extension = new $class();
// check naming convention // check naming convention
$expectedAlias = Container::underscore(str_replace('Bundle', '', $this->getName())); $expectedAlias = Container::underscore($basename);
if ($expectedAlias != $extension->getAlias()) { if ($expectedAlias != $extension->getAlias()) {
throw new \LogicException(sprintf( throw new \LogicException(sprintf(
'The extension alias for the default extension of a '. 'The extension alias for the default extension of a '.