New php library structure made easier

This commit is contained in:
Loick Piera 2014-09-18 17:26:57 +02:00
parent 900ca18539
commit 8eda6b5b5e

View File

@ -72,13 +72,12 @@ abstract class Bundle extends ContainerAware implements BundleInterface
public function getContainerExtension()
{
if (null === $this->extension) {
$basename = preg_replace('/Bundle$/', '', $this->getName());
$class = $this->getNamespace().'\\DependencyInjection\\'.$basename.'Extension';
$class = $this->getContainerExtensionClass();
if (class_exists($class)) {
$extension = new $class();
// check naming convention
$basename = preg_replace('/Bundle$/', '', $this->getName());
$expectedAlias = Container::underscore($basename);
if ($expectedAlias != $extension->getAlias()) {
throw new \LogicException(sprintf(
@ -197,4 +196,16 @@ abstract class Bundle extends ContainerAware implements BundleInterface
}
}
}
/**
* Returns the bundle's container extension class.
*
* @return string
*/
protected function getContainerExtensionClass()
{
$basename = preg_replace('/Bundle$/', '', $this->getName());
return $this->getNamespace().'\\DependencyInjection\\'.$basename.'Extension';
}
}