Composer, largement utilisé par les développeurs PHP pour gérer leurs dépendances, permet d'appeler des méthodes statiques lors d'événements lancés par Composer (post-install-cmd et post-update-cmd étant les plus utilisés, voir la liste des événements).
Comment faire pour passer des paramètres à ces méthodes statiques ?
La signature de la méthode qui sera appelée est la suivante :
foo(\Composer\Script\CommandEvent $event).
self::getOptions($event) permet de récupérer tout ce qui a été indiqué dans la clef extras de composer.json (par exemple symfony-app-dir, symfony-web-dir etc). Vous pouvez donc ajouter ici des options, et les relire dans votre commande.
Exemple : la commande app/console assets:install accepte le paramètre --symlink, et depuis Symfony 2.6, ne lève plus d'exception si le serveur ne gère pas les liens symboliques. Donc, elle doit toujours être appelée avec --symlink comme paramètre.
Composer appelle bien Sensio\Bundle\DistributionBundle\Composer::installAssets(), mais ne lui passe pas le paramètre --symlink. Il faut donc ajouter symfony-assets-install: symlink (ou relative) dans la clef extras de votre composer.json :
Comment faire pour passer des paramètres à ces méthodes statiques ?
La signature de la méthode qui sera appelée est la suivante :
foo(\Composer\Script\CommandEvent $event).
self::getOptions($event) permet de récupérer tout ce qui a été indiqué dans la clef extras de composer.json (par exemple symfony-app-dir, symfony-web-dir etc). Vous pouvez donc ajouter ici des options, et les relire dans votre commande.
Exemple : la commande app/console assets:install accepte le paramètre --symlink, et depuis Symfony 2.6, ne lève plus d'exception si le serveur ne gère pas les liens symboliques. Donc, elle doit toujours être appelée avec --symlink comme paramètre.
Composer appelle bien Sensio\Bundle\DistributionBundle\Composer::installAssets(), mais ne lui passe pas le paramètre --symlink. Il faut donc ajouter symfony-assets-install: symlink (ou relative) dans la clef extras de votre composer.json :
# composer.json
{
# ---
"extras": {
# ---
"symfony-assets-install": "symlink"
}
}
Aucun commentaire:
Enregistrer un commentaire