Dans certains projets, il peut arriver que lors de l'ajout d'une dépendance, Composer n'a pas assez de mémoire disponible pour effectuer l'ajout. La commande termine alors en erreur avec un message de ce style : PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 220
Solution
Il existe plusieurs solutions, notamment modifier le fichier de configuration de PHP pour augmenter temporairement la mémoire disponible. Mais cette solution est embêtante à faire, surtout quand on veut simplement ajouter un paquet rapidement.
La solution la plus simple est de modifier la commande que l'on utilise pour ajouter un paquet, par exemple : composer require lexik/jwt-authentication-bundle.
On passe un argument supplémentaire à PHP pour modifier à la volée la mémoire disponible pour Composer. Par exemple ici, on met à disposition 2 giga :
php -d memory_limit=2G /usr/local/bin/composer require lexik/jwt-authentication-bundle
L'ajout pourra maintenant se faire avec succès !
Version
Cet article a été testé avec :
Composer : 1.8