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 .
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 .
Si vous utilisez Laravel quand vous rencontrez cette erreur, lancez simplement:
composer require guzzlehttp/guzzle
Et essayez à nouveau.
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
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
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
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.
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.
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.