Mi aplicación consiste en múltiples paquetes que se nombran como HelloWorldAdminBundle
, HelloWorldUserBundle
, HelloWorldDemoBundle
. Esto da como resultado una raíz de configuración como hello_world_demo
, hello_world_user
y hello_world_demo
. Quiero que las raíces de configuración de mis paquetes sean helloworld_demo
, helloworld_user
y helloworld_admin
. En ese punto debo mencionar que esto no es realmente un problema técnico, sino más bien un problema estético.Symfony2: configuración personalizada root
he tratado de poner en práctica una extensión personalizada y registrarlo en el paquete:
public function build(ContainerBuilder $container)
{
parent::build($container);
$container->registerExtension(new HelloworldDemoExtension());
}
La extensión:
...
class HelloworldDemoExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
public function getAlias()
{
return 'hello_world_demo';
}
}
y finalmente la configuración:
...
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('helloworld_demo');
...
return $treeBuilder;
}
}
Seguí las instrucciones How to expose a Semantic Configuration for a Bundle, sin embargo cuando agrego un artículo a config.yml
me sale el siguiente error:
There is no extension able to load the configuration for "helloworld_demo"
¡¡Genial !! Me alegra que lo hayas encontrado –