9 votes

Laravel CLI échoue à créer une nouvelle application en raison de l'impossibilité d'utiliser la variable lexicale $eventName comme nom de paramètre

Après l'installation réussie de l'outil d'installation de Laravel en utilisant Composer avec la commande composer global require "laravel/installer", la première tentative de création d'une application en exécutant laravel new nom-de-l'application échoue avec la sortie suivante, tout conseil sera apprécié :)

Création de l'application...
Erreur fatale de PHP : Impossible d'utiliser la variable lexicale $eventName comme nom de paramètre dans /Users/ABN/.composer/vendor/guzzlehttp/guzzle/src/Event/Emitter.php à la ligne 48
Trace de la pile PHP :
PHP   1. {main}() /Users/ABN/.composer/vendor/laravel/installer/laravel:0
PHP   2. Symfony\Component\Console\Application->run() /Users/ABN/.composer/vendor/laravel/installer/laravel:13
PHP   3. Symfony\Component\Console\Application->doRun() /Users/ABN/.composer/vendor/symfony/console/Application.php:126
PHP   4. Symfony\Component\Console\Application->doRunCommand() /Users/ABN/.composer/vendor/symfony/console/Application.php:195
PHP   5. Laravel\Installer\Console\NewCommand->run() /Users/ABN/.composer/vendor/symfony/console/Application.php:878
PHP   6. Laravel\Installer\Console\NewCommand->execute() /Users/ABN/.composer/vendor/symfony/console/Command/Command.php:259
PHP   7. Laravel\Installer\Console\NewCommand->download() /Users/ABN/.composer/vendor/laravel/installer/src/NewCommand.php:52
PHP   8. GuzzleHttp\Client->get() /Users/ABN/.composer/vendor/laravel/installer/src/NewCommand.php:125
PHP   9. GuzzleHttp\Client->createRequest() /Users/ABN/.composer/vendor/guzzlehttp/guzzle/src/Client.php:125
PHP  10. GuzzleHttp\Client->getEmitter() /Users/ABN/.composer/vendor/guzzlehttp/guzzle/src/Client.php:115
PHP  11. spl_autoload_call() /Users/ABN/.composer/vendor/guzzlehttp/guzzle/src/Event/HasEmitterTrait.php:15
PHP  12. Composer\Autoload\ClassLoader->loadClass() /Users/ABN/.composer/vendor/guzzlehttp/guzzle/src/Event/HasEmitterTrait.php:15
PHP  13. Composer\Autoload\includeFile() /Users/ABN/.composer/vendor/composer/ClassLoader.php:322

17voto

Ali Points 1990

Il s'est avéré que le problème est lié à la version de guzzle installée sur le système.

Après avoir vu un problème similaire signalé autour de guzzle 5.3 sur d'autres dépôts/applications, j'ai confirmé ma version globalement installée en exécutant composer global info guzzlehttp/guzzle et c'était la version 5.3. Ensuite, en mettant à jour mon installation globale de composer en exécutant composer global update j'ai résolu le problème. Après avoir vu le rapport de mise à jour comme indiqué ci-dessous, en lançant le même laravel new nom-de-l'application génère l'application avec succès.

Mise à jour de guzzlehttp/guzzle (5.3.0 => 6.2.3) : Téléchargement (100%)

3voto

kenorb Points 2464

Ceci est lié à l'incompatibilité de Guzzle avec PHP 7.x et cela a été corrigé dans Guzzle >=5.3.1.

La solution est de mettre à jour votre Guzzle en modifiant la ligne de votre fichier composer.json comme suit :

"guzzlehttp/guzzle": "~5.3.1",

ou :

"guzzlehttp/guzzle": "~5.3@stable",

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X