Класс \GuzzleHttp\Client не найден композитор

Я устанавливаю Guzzle с помощью композитора и пытаюсь его использовать, но получаю сообщение об ошибке

Неустранимая ошибка: Uncaught Error: Class 'Conf\GuzzleHttp\Client' не найден в /var/www/html/4travelo_beta/config/RequestConf.php:28 Трассировка стека: #0 /var/www/html/4travelo_beta/config/RequestConf .php(85): Conf\RequestConf->__construct() #1 {main} добавлено в /var/www/html/4travelo_beta/config/RequestConf.php в строке 28

это моя структура каталогов:

Структура каталога

и это мой код:

 namespace Conf ;

    require '../vendor/autoload.php';

    use GuzzleHttp\Client;
    use GuzzleHttp\Psr7;
    use GuzzleHttp\Psr7\Request;
    use GuzzleHttp\Psr7\Response;
    use GuzzleHttp\Psr7\Uri;

    class RequestConf
    {
     /**
        /**
         * @var Client HTTPClient object
         */
        private $httpClient;

        /**
         * HotelApiClient Constructor they initialize SDK Client.
         * @param int $timeout HTTP Client timeout
         */

        function __construct()
        {
            $this->$httpClient = new GuzzleHttp\Client(['base_url' => 'https://api.test.com/']);
        }
}

мой композитор.json:

    {
    "autoload": {
        "psr-4": {

            "Conf\\": "config/",
            "Model\\": "model/"
        }
    },
    "require": {
        "guzzlehttp/guzzle": "~6.0"
    }
}

Я обновлял свой композитор, но класс Guzzle все еще не работает, может кто-нибудь сказать мне, почему?


person Herdy    schedule 24.11.2016    source источник


Ответы (2)


TL;DR Просто попробуйте = new Client(...), потому что вы уже импортировали GuzzleHttp\Client, или просто удалите этот импорт.

Вы пытаетесь создать экземпляр GuzzleHttp\Client, и поскольку нет импортированных пространств имен, таких как GuzzleHttpuse), PHP пытается найти класс в текущем пространстве имен. В итоге вы получите ошибку о Config\GuzzleHttp\Client.

Так должно быть так:

 function __construct()
 {
      $this->httpClient = new Client(['base_url' => 'https://api.test.com/']); // Please also note removed '$' from httpClient, because it a field.
 }
person Alexey Shokov    schedule 25.11.2016
comment
Типа new GuzzleHttp\Client\GuzzleHttp\Client не получится. - person Daniel W.; 25.11.2016

Возможно, вам придется использовать composer dumpautoload, чтобы он обновил включаемый файл автозагрузки.

person Daniel W.    schedule 25.11.2016