Laravel: Class 'GuzzleHttp\Client' не найден
Я пытаюсь использовать Mandrill для отправки писем через мою структуру Laravel, однако я получаю следующую ошибку:
FatalErrorException в строке MandrillTransport.php 114: Класс 'GuzzleHttp\Client' не найден
Я установил Guzzle, используя следующую команду в терминале:
"guzzlehttp/guzzle": "~4.0"
В соответствии с документацией Laravel мне нужно добавить "guzzlehttp/guzzle": "~4.0"
в мой файл composer.json, но я не уверен, что если я разместил его правильно, я все еще вижу ошибку.
{
"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"
}
}
Вот список пакетов моего приложения, обратите внимание, что у guzzle есть другая версия: 4.2.3, которую я также пробовал обновлять, но все равно получаю ту же ошибку.
![list of packages installed]()
Ответы
Ответ 1
Откройте свой терминал в корне вашего проекта и введите
composer.phar require guzzlehttp/guzzle
Он работал для API mailgun. По какой-либо причине предложенный метод в larvel mail doc
"guzzlehttp/guzzle": "~5.3|~6.0"
не позволяет композитору загрузить исходные коды Guzzle
. Кстати, я не узнал, что означает |
при определении версии. Эта команда просто загружает код PSR.
В этот момент решение может работать. Однако, помните о проблемах совместимости. Поскольку команда установит последнюю стабильную версию, а не подходящую.
Ответ 2
После обновления вашего файла composer.json
вам необходимо запустить команду update, чтобы разрешить и установить ваши зависимости:
composer update
или, если композитор не находится на вашем пути:
php composer.phar update
Ответ 3
Вы пытались:
artisan clear-compiled
или если мастер недоступен, попробуйте удалить compiled.php, если существует (в каталоге поставщика) и запустить композитор dumpautoload
Ответ 4
У меня была такая же проблема.
Для работы я использовал старую версию.
Он больше не работает с версии 4.
Он работает на версии 3.8.1.
Итак, вы можете добавить "guzzlehttp/guzzle": "~ 3" для работы
Ответ 5
Я получил эту ошибку, когда попытался запустить мой код за пределами структуры Laravel во время тестирования в автономном файле. Это работало для меня, когда я переместил его внутри контроллера.
Ответ 6
Вы можете решить эту проблему, добавив "mews/captcha": "1.0.1"
и "guzzlehttp/guzzle": "~4.0"
в ваш файл composer.json. И тогда вам нужно запустить команду composer update
на вашем терминале.
Я пробовал Laravel 4. Он работает для меня.
Ответ 7
Я не обращаю внимания на то, почему это сработало для меня, я видел это на форуме где-то
Я просто добавил этот генератор captcha в файл composer.json
"mews/captcha": "~2.0.",
добавила его ко всему требуемому пакету
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"laravelcollective/html": "5.1.*",
"laracasts/flash": "~1.3",
"mews/captcha": "~2.0.",
"guzzlehttp/guzzle": "~4.0"
},
Если кто-то знает, почему это сработало, это действительно поцарапает зуд в моем мозгу.