Пользовательский конфиг в Symfony2

Я разрабатываю небольшой пакет, который обеспечивает облако тегов функциональность. Это должно быть легко, включить его в другие проекты 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 комментируются во всех файлах, чтобы сделать его максимально простым.

Я заметил, что аналогичные вопросы были заданы и соответствующие проблемы были решены, но я не могу передать эти решения этой проблеме.

Есть идеи, что я скучаю?

4

Решение

Наконец-то решил это

  • Помня об именах, особенно о той части, на которую указал Якуб Залас
  • удаление записи: $loader->load('config.yml'); из файла расширения.

Очевидно, что файл конфигурации будет загружен автоматически, как только служба была загружена.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru