Подтвердить что ты не робот

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

4b9b3361

Ответ 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"
    },

Если кто-то знает, почему это сработало, это действительно поцарапает зуд в моем мозгу.