mardi 28 avril 2015

Commandes lancées par composer

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 :
# composer.json { # --- "extras": { # --- "symfony-assets-install": "symlink" } }

Aucun commentaire:

Enregistrer un commentaire