Je construis un nouveau bundle pour mon application Symfony 4.2 et je veux exécuter un code spécifique une seule fois après l'installation du bundle pour configurer une classe squelette dans le projet racine. Comme le bundle Maker mais sans interaction manuelle. Le bundle installé doit modifier la configuration yaml existante d'un autre bundle (bien sûr, une fois après l'installation).
J'ai essayé d'utiliser la section de script composer.json du bundle sans succès. Je n'ai trouvé aucune référence dans la documentation officielle pour résoudre ce problème.
Existe-t-il une méthode pour résoudre ce problème?
3 Réponses :
Vous devez définir votre script dans composer.json tout en exécutant la commande d'installation ou de mise à jour de composer:
{ "scripts": { "auto-scripts": [ ], "post-install-cmd": [ "@auto-scripts" ], "post-update-cmd": [ "@auto-scripts" ] } }
Vous obtiendrez plus de détails dans ce lien
Ne fonctionnera pas, cela ne peut être inclus que dans le projet; pas dans le package installé.
Symfony Flex est un outil permettant d'automatiser l'installation et la suppression de bundles et autres dépendances.
Vous devez ajouter une recette pour votre bundle ici: https://github.com/symfony/recipes-contrib p >
Si votre groupe est privé, vous pouvez utiliser Dépôt privé de recettes Symfony Flex
Mise à jour: l'approche @Mitesh Vasava ne fonctionnera pas car, tout d'abord, vous devez configurer les scripts manuellement dans le composer.json
de votre projet, pas dans le composer.json
d'un bundle. Deuxièmement, ces scripts s'exécuteront après chaque installation, pas seulement après l'installation de votre bundle.
Vous pouvez soit créer une recette officielle pour Symfony Flex comme mentionné par @BoShurik, soit créer un plugin de composition, que vous pouvez lire sur ici .
L'approche de base serait de créer un package séparé qui servirait d'installation et qui en aurait besoin dans votre bundle.
Votre plugin peut alors modifier la source comme bon vous semble.