Я так понимаю, что конфиг пишется для бандла, и без использования бандла добавить новую секцию в config/services.yaml - не получится. Поэтому я написал конфиг (добавив новую секцию как и хотел), добавил классы src/DependencyInjection/AppSettingsConfiguration.php и src/DependencyInjection/AppSettingsExtension.php, добавил строку в фаил config/bundles.php для подключения бандла.
Но как использовать написанную мною конфигурацию - не пойму. Банально не могу понять как получить доступ к добавленному мной конфигу. DUMP() в src/DependencyInjection/AppSettingsExtension.php выводит добавленное мной дерево в виде массива, ошибок не вылетает. Но как, например, в контроллере получить доступ, или в сервисе, или в твиге...
Помогите плиз!
class AppSettingsExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new AppSettingsConfiguration();
$config = $this->processConfiguration($configuration, $configs);
dump($config);
}
}
class AppSettingsConfiguration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('app_settings');
$rootNode
->children()
->arrayNode('menuItems')
->children()
->arrayNode('mappings')
->useAttributeAsKey('name')
->arrayPrototype()
->children()
->scalarNode('class')->end()
->scalarNode('type')->end()
->scalarNode('trans')->end()
->end()
->end()
->end()
->end()
->end();
return $treeBuilder;
}
}
app_settings:
menuItems:
mappings:
MenuItemCategory:
class: 'App\Entity\MenuItemCategory'
type: 'App\Form\Entity\MenuItemCategoryType'
trans: 'label.menuItem_category_link'
MenuItemPage:
class: 'App\Entity\MenuItemPage'
type: 'App\Form\Entity\MenuItemPageType'
trans: 'label.menuItem_page_link'
MenuItemArticle:
class: 'App\Entity\MenuItemArticle'
type: 'App\Form\Entity\MenuItemArticleType'
trans: 'label.menuItem_article_link'
MenuItemSimple:
class: 'App\Entity\MenuItemSimple'
type: 'App\Form\Entity\MenuItemSimpleType'
trans: 'label.menuItem_simple_link'