web-dev-qa-db-fra.com

Laravel: La classe 'GuzzleHttp\Client' est introuvable

J'essaie d'utiliser Mandrill pour envoyer des courriels via mon framework Laravel, mais je reçois le message d'erreur suivant:

FatalErrorException dans la ligne 114 de MandrillTransport.php: Class 'GuzzleHttp\Client' introuvable

J'ai installé Guzzle à l'aide de la commande suivante dans Terminal:

"guzzlehttp/guzzle": "~4.0"

Selon la documentation de Laravel, je dois ajouter "guzzlehttp/guzzle": "~4.0" à mon fichier composer.json, mais je ne suis pas certain que l'emplacement où je l'ai placé est correct, car l'erreur persiste.

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "laravel/framework": "5.0.*",
        "illuminate/html": "^5.0",
        "guzzlehttp/guzzle": "~4.0"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php -r \"copy('.env.example', '.env');\"",
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

Voici la liste des paquets de mon application, notez que guzzle a une version différente: 4.2.3 pour laquelle j'ai également essayé de mettre à jour, mais j'obtiens toujours la même erreur .list of packages installed

15
Imran

Ouvrez votre terminal à la racine de votre projet et entrez

composer.phar require guzzlehttp/guzzle

Cela a fonctionné pour l'API mailgun. Pour une raison quelconque, la méthode suggérée dans le doc mail de laravel 

"guzzlehttp/guzzle": "~5.3|~6.0"

ne fait pas que le compositeur télécharge les codes source Guzzle. En passant, je n’ai pas trouvé ce que | signifie pour déterminer la version. Cette commande télécharge simplement le code PSR. 

En ce moment, la solution peut fonctionner. Cependant , soyez conscient des problèmes de compatibilité. Parce que la commande installerait la dernière version stable, pas celle qui convient

13
shampoo

Si vous utilisez Laravel quand vous rencontrez cette erreur, lancez simplement:

composer require guzzlehttp/guzzle

Et essayez à nouveau.

7
Grant

Après avoir mis à jour votre fichier composer.json, vous devez exécuter la commande update pour résoudre et installer vos dépendances:

composer update

ou, si le compositeur n'est pas sur votre chemin:

php composer.phar update
6
Paulpro

As-tu essayé :

artisan clear-compiled 

ou si artisan n'est pas disponible, essayez de supprimer compiled.php s'il existe (dans le répertoire du fournisseur) et lance composer composer dumpautoload 

2
Ju Chépa

J'ai eu le même problème… .. J'ai utilisé une ancienne version pour fonctionner… .. Cela ne fonctionne plus depuis la version 4… .. Cela fonctionne avec la version 3.8.1

Pour que vous puissiez ajouter "guzzlehttp/guzzle": "~ 3" aux oeuvres

1
Larzack

Vous pouvez résoudre ce problème en ajoutant "mews/captcha": "1.0.1" et "guzzlehttp/guzzle": "~4.0" à votre fichier composer.json. Et ensuite, vous devez exécuter la commande composer update sur votre terminal.

J'ai essayé Laravel 4. Cela fonctionne pour moi.

0
Goktug Gumus

simple dans mon cas, ajoutez "guzzlehttp/guzzle": "^6.3" dans composer.json nécessite un objet comme mentionné ci-dessous

"require": {
        "php": ">=7.0.0",
        "ext-Gd": "*",
        "barryvdh/laravel-cors": "^0.11.2",
        "barryvdh/laravel-dompdf": "^0.8.1",
        "dingo/api": "2.0.0-alpha1",
        "doctrine/dbal": "^2.6",
        "fideloper/proxy": "~3.3",
        "guzzlehttp/guzzle": "^6.3",
        "intervention/image": "^2.4",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "league/flysystem-aws-s3-v3": "~1.0",
        "predis/predis": "^1.1",
        "tymon/jwt-auth": "dev-develop"
    }, 

que exécuter composer update dans la racine du projet en utilisant le terminal que son travail fonctionne bien.

0
Muhammad Sulman

J'ai eu cette erreur lorsque j'ai essayé d'exécuter mon code en dehors du framework Laravel tout en effectuant des tests dans un fichier autonome. Cela a fonctionné pour moi quand je l'ai déplacé à l'intérieur d'un contrôleur.

0
boateng