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 :

Insertion de PHP dans un fichier .yml


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut Insertion de PHP dans un fichier .yml
    Bonjour à tous,

    je souhaite rendre dynamiques certains réglages d'un fichier generator.yml, en fonction de la configuration de l'application.

    Le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          edit:
            title: Modifier la catégorie %%name%%
            display:
              Informations générales: [_admin_dates, name, tag, page_template_id, enabled]
              Référencement: [meta_title, meta_description, meta_keywords]
              <?php echo sfConfig::get('app_adminForms_enableAssociationTexts', 0) ?  "Textes d'association: [LinksToParentCategories]" : ""; ?>
    #          Textes d'association: [LinksToParentCategories]
              Catégories parentes: [newParentCategory, _parent_categories]
    Notez la ligne en commentaires après l'appel au code PHP. Malheureusement, si je supprime cette ligne, l'application plante :
    Unable to parse file "C:\wamp\www\SoulShake\Sources\apps\backend/modules/category/config/generator.yml": Unable to parse line 49 ( Catégories parentes: [newParentCategory, _parent_categories]).
    Comment faire pour avoir un .yml qui compile sans cette ligne de commentaires inutile ?

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Ha tiens, je viens de m'apercevoir que le plantage ci-dessus n'a lieu que si le test du echo renvoie false (donc echo ""). S'il renvoie true et fait un écho différent d'une chaîne vide, ça ne plante pas.

    Poursuivant sur cette voie, j'ai essayé le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          edit:
            title: Modifier la catégorie %%name%%
            display:
              Informations générales: [_admin_dates, name, tag, page_template_id, enabled]
              Référencement: [meta_title, meta_description, meta_keywords]
              <?php echo sfConfig::get('app_adminForms_enableAssociationTexts', 0) ?  "Textes d'association: [LinksToParentCategories]" : "#\n"; ?>
              Catégories parentes: [newParentCategory, _parent_categories]
    qui, lui, ne plante jamais. Notez l'ajout d'un "#\n" au lieu de la chaîne vide si le test de l'echo renvoie false.

    Comme quoi poser des questions aide à progresser sur le voie de la solution, même si le problème n'est pas tout à fait idéalement résolu...

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Très bonne l'idée de mettre du code PHP dans le generator. Très intéressant.

    Question bis, ceci ne sera "compilé" et régénéré que si le cache est vidé...

    Tu envisages de le gérer comment ?

  4. #4
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Dans le cas que je gère en ce moment, il s'agit d'une application qui sera paramétrée à la livraison et le paramétrage ne changera pas par la suite. Donc pas de cache initialement, et vidage de cache classique à la console si jamais par improbable la configuration installée doit changer.

    Par contre, si la gestion du generator.yml était vraiment dynamique avec des lignes activées ou désactivées selon les actions de l'utilisateur... hum...
    On peut toujours appeler dans notre code les mêmes actions que le cc de symfony mais ça risque d'être lourd et de rendre les affichages assez longs si on vide le cache souvent. A priori, je pense que dans ce cas, je ne travaillerais pas dans generator.yml mais dans plutôt les fichiers classiques (templates, css, js). Non ?

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En effet, on sort là du cadre du générateur.

    De plus, cela reviendrait à regénérer le module presque à la volée et pour chaque utilisateur (si les droits étaient différents).

    Il reste une possibilité. Comme tout est légo dans symfony, le générateur d'application est un ensemble de pièces. Il est alors possible de réécrire une partie du code de génération et de le rendre dynamique.

    Une autre solution pourrait de gérer cela au niveau du configure() du form et de conditionner l'apparition des widget et des validator. Mais il faudrait alors laisser le generator vide pour le détail des champs... Si non, il va tenter d'afficher un champ inexistant et c'est l'erreur assurée.

Discussions similaires

  1. Insertion de code php dans un fichier
    Par soohikei dans le forum Langage
    Réponses: 4
    Dernier message: 28/05/2012, 16h31
  2. [DOM] Insertion d'élément dans un fichier XML en PHP
    Par marcus13 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/04/2008, 14h51
  3. [PHP] Dans un fichier js...
    Par frutix dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 03/11/2005, 15h48
  4. Réponses: 11
    Dernier message: 28/10/2005, 10h21
  5. Insertion de champs dans un fichier
    Par flouflou dans le forum Linux
    Réponses: 3
    Dernier message: 16/08/2004, 15h48

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