11
votes

Le nouveau blog de laravel ne fonctionne pas moquerie / moquerie 1.4.0

Aujourd'hui je voulais créer un nouveau projet avec Laravel avec cette commande

Crafting application...
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for mockery/mockery 1.4.0 -> satisfiable by mockery/mockery[1.4.0].
    - mockery/mockery 1.4.0 requires php ^7.3.0 -> your PHP version (7.2.23) does not satisfy that requirement.

Mais j'obtiens cette erreur

laravel new blog

Pourquoi devrait-on lire php7.3 alors que Laravel lui-même dit au moins php7.2.5 ???


1 commentaires

Impair. La version actuelle de Laravel ne nécessite que Mockery 1.3. github.com/laravel/laravel/blob/…


8 Réponses :


19
votes

Exécutez la composer update .

La raison:

Votre version PHP est trop basse. Vous avez installé 7.2.23, et mockery/mockery 1.4 nécessite 7.3.0

La meilleure solution est de mettre à jour votre version PHP. Alternativement, vous pouvez réduire la version de mockery à 1.3.1 , qui ne nécessite que PHP 5.6 ou supérieur.

Mon rapport de bogue peut être trouvé ici

À partir du 21/05/2020, les fichiers zip laravel new ___ par laravel new ___ essaieront d'installer la version 1.4 mockery/mockery . Cela ne fonctionnera pas avec les versions de PHP inférieures à 7.3. Pour résoudre ce problème, exécutez la composer update et la moquerie sera rétrogradée vers une version compatible.


6 commentaires

Comment changer la version moquerie / moquerie en 1.3.1


Modifiez-le dans composer.json, puis exécutez la mise à jour du compositeur.


Alors que la mise à niveau de PHP fonctionnera, la documentation Laravel indique que Laravel (et ses dépendances) ne nécessite que la version 7.2.5+, et par défaut, elle ne nécessite que Mockery 1.3. Je ne sais pas comment OP l'a gâché pour forcer la v1.4 à être requise.


@ceejayoz laravel/installer télécharge [ce fichier zip] (cabinet.laravel.com/latest.zip) et exécute le programme d'installation de composer dessus. Il est vrai que composer.json ne nécessite que la mockery/mockery de ^1.3.1 , mais le fichier composer.lock dans ce zip répertorie la mockery/mockery version 1.4.0 . Une composer update probablement. La branche principale de laravel/installer échoue sur PHP 7.2 , et je soupçonne que c'est le problème. Pour faire court, je ne pense pas qu'OP a tout gâché.


@Joundill Oh intéressant, je n'avais pas réalisé que laravel new un composer.lock .


j'utilise php 7.4.9



18
votes

J'ai eu le même problème aujourd'hui pour les nouveaux projets Laravel. Le fichier composer.json affichait "mockery/mockery": "^1.3.1" mais "mockery/mockery": "^1.3.1" toujours la même erreur. Supprimez également le fichier composer.lock et exécutez l' composer install .


2 commentaires

Oui, vous avez raison, j'essayais uniquement l' composer install


Je vous remercie! Je me demande comment cette moquerie 1.4 est entrée dans le fichier composer.lock en premier lieu



3
votes

En supposant que vous essayez de créer un nouveau projet laravel appelé blog voici ce que j'ai fait pour corriger l'erreur après avoir laravel new blog

  1. cd dans le blog

  2. exécuter la composer update

  3. Créez un fichier .env . Vous pouvez simplement faire une copie de .env.example et renommer la copie en .env . Si vous essayez de démarrer le serveur de développement à l'aide de php artisan serve et que l'application se lance avec une erreur 500, exécutez ces commandes:

    php artisan key:generate

    php artisan cache:clear

    php artisan config:clear

    composer dump-autoload


0 commentaires

1
votes

J'ai eu le problème en essayant de créer de nouvelles applications Laravel, j'ai mis à jour la version php en utilisant les commandes suivantes et cela a fonctionné.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt install -y php7.4 php7.4-gd php7.4-mbstring php7.4-xml


0 commentaires

1
votes

Tu peux juste courir

composer create-project --prefer-dist laravel/laravel <project_name>

Il reviendra automatiquement à la mockery^1.3.1


0 commentaires

1
votes

Supprimez le fichier composer.lock et exécutez à nouveau composer

composer install


0 commentaires

-2
votes

Cela peut être obsolète, le problème ici est que le php doit être mis à jour vers la version qui sera compatible.

  • supprimez le fichier composer.lock et le fichier de chargement automatique dans le fournisseur ie vendeur / chargement automatique dans votre projet
  • mettre à jour la version php de php.net
  • exécuter le programme d'installation du compositeur - aucun script
  • exécuter la mise à jour du compositeur
  • php artisan migrer
  • clé artisanale php: générer

3 commentaires

Veuillez ajouter quelques explications à votre réponse afin que d'autres puissent en tirer des leçons. Pourquoi la suppression de composer.lock devrait-elle aider? Quelle est la raison pour laquelle exécuter la composer update directement après l' composer install ?


La raison de la suppression du fichier Composer.lock est qu'il essaie de trouver les versions compatibles de vos dépendances pour remplir le composeur. json, il installera la version exacte de vos dépendances. Dans mon cas, j'ai cloné un projet laravel 8 et ma version php était inférieure, j'ai donc supprimé le fichier composer.lock et autoload. Exécutez la commande d'installation du compositeur Exécutez la mise à jour du compositeur Puis j'ai exécuté la commande migrations, ainsi que la commande key: generate


Veuillez ajouter toutes les explications à votre réponse en la modifiant. Expliquez également pourquoi la suppression du fichier de verrouillage devrait produire un résultat différent de l'exécution de la composer update - les deux recalculent vos dépendances



0
votes

J'ai également fait face à ces problèmes.

Problème 1 - Demande d'installation pour façade / contrats d'allumage 1.0.2 -> satisfiable par façade / contrats d'allumage [1.0.2]. - Façade / Ignition-Contrats 1.0.2 nécessite php ^ 7.3 | ^ 8.0 -> votre version PHP (7.2.34) ne satisfait pas à cette exigence.

Problème 2 - Demande d'installation pour moquerie / moquerie 1.4.2 -> satisfiable par moquerie / moquerie [1.4.2]. - moquerie / moquerie 1.4.2 nécessite php ^ 7.3 || ^ 8.0 -> votre version PHP (7.2.34) ne satisfait pas à cette exigence.

Problème 3 - Façade / Contrats d'allumage 1.0.2 nécessite php ^ 7.3 | ^ 8.0 -> votre version PHP (7.2.34) ne répond pas à cette exigence. - nunomaduro / collision v4.2.0 nécessite des contrats de façade / d'allumage ^ 1.0 -> satisfiable par des contrats de façade / d'allumage [1.0.2]. - Demande d'installation pour nunomaduro / collision v4.2.0 -> satisfiable par nunomaduro / collision [v4.2.0].

J'avais supprimé le fichier composer.lock et exécuté la commande d' composer install .

Mon problème est résolu.


0 commentaires