IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

dependency injection pour fichier de config


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 20
    Par défaut dependency injection pour fichier de config
    Bonjour,

    Encore moi je sais désolé.

    En fait j'ai un problème concernant la création d'un fichier de config pour un bundle.
    J'aimerai créer pour chaque bundle un fichier de conf qui me permet d'initialiser certaines variable.

    Pour cela j'ai vu qu'il fallait d'abord charger ce fichier dans la fonction load() de AcmeBlogExtension.
    fichier que j'ai nommé blog.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    acme_blog:
        search: test
    Dans le fichier configuration, j'ai crée le tree builder corespondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            $treeBuilder = new TreeBuilder();
            $rootNode = $treeBuilder->root('acme_blog');
     
            $rootNode->
            	children()
            		->scalarNode('search')
            			->defaultValue('title')
            		->end()
            	->end();
     
            return $treeBuilder;
    J'ai bien respectée ce qui est écrit dans le cookbook de symfony :http://symfony.com/fr/doc/current/co...extension.html

    Pourtant j'ai un erreur qui m'est retournée, j'ai fais de nombreuses modifications mais rien y fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InvalidArgumentException: There is no extension able to load the configuration for "acme_blog" ....Looked for namespace "acme_blog", found none
    En espérant que vous pourrez m'aider.
    merci beaucoup

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Je ne suis pas sûr d'avoir compris ce que tu souhaites faire. Depuis quels fichiers veux-tu que cette variable soit accessible ? Dans les fichiers de configuration pour l'injection de dépendance uniquement ?

    Si c'est le cas, importer ton fichier supplémentaire depuis le fichier de config principal de ton bundle devrait suffire, sans avoir à toucher aux fichiers du dossier DI.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 20
    Par défaut
    En fait j'aimerai avoir un fichier de configuration pour chaque bundle.
    Ce fichier serai placé dans /ressources/config/ de chaque bundle.

    Dans ce fichier mettre des variables que je pourrai utiliser dans les controlleurs du bundle.

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Si le but est d'y accéder via le container, alors je persiste : tu n'as pas besoin de passer par le DI.

    En ajoutant cette ligne à chaque fichier services.yml, tu pourras importer le fichier additionnel pour chacun de tes bundles.
    Dans cet exemple les fichiers customs sont regroupés dans un dossier services qui se trouve au même niveau que le fichier services.yml (ce n'est pas obligatoire mais ça permet de les regrouper).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # services.yml
    imports:
        - { resource: services/myCustomFile.yml }
    Dans ton fichier myCustomFile.yml tu pourras alors déclarer tes paramètres de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # myCustomFile.yml
    parameters:
        my.parameter.key: value
    Depuis un contrôleur ou n'importe quel classe qui implémente ContainerAware, tu pourras alors faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Any controller that extends ContainerAware
     
    // From a ContainerAware controller
    $value = $this->getParameter('my.parameter.key');
    // From the container object
    $value = $container->getParameter('my.parameter.key');
    Les controllers générés par Symfony étendent déjà par défaut une classe qui elle même implémente ContainerAware. Pas la peine de le rajouter à priori.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2012, 14h12
  2. Parseur pour fichier de config
    Par NLS le pingouin dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/10/2010, 12h30
  3. Réponses: 7
    Dernier message: 12/02/2007, 10h11
  4. [Properties] conseil pour l'ecriture d'un fichier de config
    Par yann_p dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 11/10/2006, 12h16
  5. Réponses: 19
    Dernier message: 12/08/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo