2017-10-10 1 views
0

J'ai généré un nouveau paquet: RusabTestBundle. Il a entre autres fichiers choses:Pourquoi je ne peux pas utiliser la configuration dans les fichiers de configuration de bundle?

- DependencyInjection 
-- RusabTestBundleExtension.php 
-- Configuration.php 

En RusabTestBundleExtension.php je:

$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 
$loader->load('services.yml'); 

Dans Configuration.php J'ai:

$rootNode = $treeBuilder->root('rusab_test_service'); 

suivant:

- Resources 
-- services.yml 

Dans services.yml je colle:

rusab_test_service: 

Et j'ai erreur:

There is no extension able to load the configuration for "rusab_test_service" (in /xxx/src/Rusab/TestBundle/DependencyInjection/../Resources/config/services.yml). Looked for namespace "rusab_test_service", found none

Mais je je colle

rusab_test_service: 

à

app/config/config.yml

alors que cela fonctionne bien.

Pourquoi? Je sais, je peux importer services.yml dans app/config/config.yml, mais pour ce qui est loader dans RusabTestBundleExtension.php?

+0

Essayez ceci: https://stackoverflow.com/a/35505189 et dénomination la clé dans les fichiers yml & Configuration.php 'rusab_test' –

+0

@AlisterBulman cela ne fonctionne pas non plus pour moi – rusab

+0

Fondamentalement, le constructeur d'arbre est utilisé pour créer une configuration par défaut de paquets. Il n'y a pas de fichier Bundle/resources/config.yml. Et bien sûr, app/config peut être utilisé pour remplacer des nœuds spécifiques. – Cerad

Répondre

1

La configuration du bundle fonctionne en construisant un arbre de configuration de toutes les différentes options.

Vous essayez de construire l'arbre en chargeant dans un fichier de configuration qui pourrait être sympa mais ce n'est pas la façon dont Symfony est conçu.

Alors votre arbre à construire Configuration.php puis donner à l'application la possibilité de remplacer les valeurs spécifiques via app/config/config.yml