2015-08-13 2 views
4

Я разработал небольшой пакет, который обеспечивает облако тегов функциональность. Это должно быть легко, включить его в другие проекты Symfony и, следовательно, его нужно настраивать. Я обнаружил, 3 страницы:Пользовательская конфигурация в Symfony2

я работал вместе примерах, но очевидно, что я пропустил что-то, потому что я получаю следующее сообщение об ошибке, когда я использование php app/console config:dump-reference:

[Symfony \ Component \ Config \ Ex ception \ 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" (в/главная/somePath/блог/приложение/конфигурации /../../ SRC/Лева/TagBundle/Ресурсы/конфигурации/config.yml). Посмотрел на пространство имен «loew_tag», нашел «framework», «security», «twig», «monolog», «swiftmailer», «assetic», «doctrine», «sensio_framework_extra», «blog», «fos_user», «debug "," web_profiler "," sensio_distribution "

Я работаю внутри« блога блога »и пытаюсь получить доступ к конфигурационным данным для« набора тегов ».

Top моего 'приложение/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:

Записи для узла food_entities комментируются во всех файлах, чтобы их максимально упростить.

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

Любая идея, что я пропустил?

+0

Не могли бы вы ссылаться на другой вопрос? –

+0

thx для ответа, но, к сожалению, я не могу воспроизвести условия поиска, которые привели меня к этим вопросам. Я помню, что один опубликованный вопрос был решен путем рассмотрения конкретного соглашения об именах. Это было связано с именем корневого узла внутри config.yml и его сопоставлением в treeBuilder внутри Configuration.php и далее с именованием класса расширения, который должен следовать схеме поставщика/пучка, в которой «Bundle» заменяется на «Расширение». Похоже, это не моя проблема. Я буду продолжать искать эти вопросы. – dan

+1

Является ли пакет зарегистрированным в вас 'app.php'? Также, что выводит команду 'php app/console config: dump-reference'? – ferdynator

ответ

0

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

  • соглашение об именовании учета в виде, особенно в части, отметил Якуб Zaļās
  • удаления записи: $loader->load('config.yml'); из файла расширения.

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

Смежные вопросы