Я разрабатываю небольшой пакет, который обеспечивает облако тегов функциональность. Это должно быть легко, включить его в другие проекты Symfony, и поэтому он должен быть настраиваемым. Я обнаружил 3 страницы:
Я работал над примерами, но очевидно, что я что-то упустил, потому что я получаю следующее сообщение об ошибке при использовании php app/console config:dump-reference
:
[Symfony \ Component \ Config \ Exception \ FileLoaderLoadException] Нет расширения, способного загрузить конфигурацию для «loew_tag» (в somePath / blog / app / config /../../ src / Loew / TagBundle / Resources / config / config.yml). Искал пространство имен «loew_tag», нашел «…» в somePath / blog / app / config /../../ src / Loew / TagBundle / Resources / config / config.yml (который импортируется из «somePath / блог / приложение / Config / config.yml «).
а также
[Symfony \ Component \ внедрение зависимости \ Exception \ InvalidArgumentException] Нет расширения, способного загрузить конфигурацию для «loew_tag» (в /home/somePath/blog/app/config/../../src/Loew/TagBundle/Resources/config/config.yml). Искал пространство имен «loew_tag», нашел «framework», «security», «twig», «monolog», «swiftmailer», «instaltic», «doctrine», «sensio_framework_extra», «blog», «fos_user», «debug «,» web_profiler «,» sensio_distribution «
Я работаю внутри «комплекта блогов» и пытаюсь получить доступ к данным конфигурации для «комплекта тегов».
Начало моего ‘app / config / config.yml’:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: ../../src/Loew/TagBundle/Resources/config/services.yml }
- { resource: ../../src/Loew/TagBundle/Resources/config/config.yml }
LoewTagExtension.php:
<?php
// Loew/TagBundle/DependencyInjection/LoewTagExtension.php
namespace Loew\TagBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;
class LoewTagExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
//$container->setParameter('food_entities', $config['food_entities']);
$container->setParameter('split_match', $config['split_match']);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('config.yml');
$loader->load('services.yml');
}
}
config.yml:
loew_tag:
# food_entities:
# - "BlogBundle:Article"# - "BlogBundle:Comment"split_match: "/[^0-9a-zA-ZöÖüÜäÄß]/"
configuration.php:
<?php
// Loew/TagBundle/DependencyInjection/Configuration.php
namespace Loew\TagBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('loew_tag');
$rootNode
->children()
->scalarNode('split_match')->end()
// ->arrayNode('food_entities')
// ->prototype('scalar')->end()
->end();
return $treeBuilder;
}
}
Записи для узла food_entities
комментируются во всех файлах, чтобы сделать его максимально простым.
Я заметил, что аналогичные вопросы были заданы и соответствующие проблемы были решены, но я не могу передать эти решения этой проблеме.
Есть идеи, что я скучаю?
Наконец-то решил это
$loader->load('config.yml');
из файла расширения.Очевидно, что файл конфигурации будет загружен автоматически, как только служба была загружена.
Других решений пока нет …