Класс GuzzleHttp \ Client не найден

Я впервые использую ОБЕИЕ Guzzle и Codeigniter 3.0. Также я признаю, что впервые использую пространство имен php.

Я пытаюсь сделать очень простой запрос на получение с помощью Guzzle в соответствии с примерами, приведенными в документации. (Документы Guzzle ничего не говорят о codeigniter).

Файлы Guzzle находятся в application / class / guzzle.

Вот мой очень простой контроллер

public function indey () {

        $data = array();
        $data['main_content'] = "hiview";
        $data['title'] = "Data Analyzer - Welcome";
        $data['xas'] = $this->guzzler();
        $this->load->view('template', $data);
    }

    private function guzzler() {
        $client = new GuzzleHttp\Client;
        $response = $client->get('http://guzzlephp.org');
        return $response;
    }

Это мой простой взгляд

    <div class="row">
        <div class="col-xs-12">
             <h1>Hi</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-12">
            <h1><?php var_dump($xas); ?></h1>
        </div>
    </div>

Это ошибка, которую я получаю

Произошла ошибка PHP. Серьезность: Сообщение об ошибке: Класс 'GuzzleHttp \ Client' не найден Имя файла: controllers / hello.php Номер строки: 22 Отслеживание:


person user2115154    schedule 31.03.2015    source источник
comment
Быстрый вопрос; почему бы не использовать Composer для управления Guzzle?   -  person Chris Forrence    schedule 31.03.2015
comment
Не удалось установить Composer на wamp и Windows 7. Пробовал как установщик, так и командную строку ...   -  person user2115154    schedule 31.03.2015
comment
Хорошо, это достойная причина. Это может помочь настроить композитор, но я, к сожалению, не знаком с тем, как настраивается CodeIgniter. Возможно, ему придется перейти в приложение / библиотеки (и оттуда, загруженное $this->load->library('GuzzleHttp') или что-то в этом роде)   -  person Chris Forrence    schedule 31.03.2015
comment
Спасибо за ссылку для настройки композитора, Крис ... и да, я пытаюсь понять что-то в этом роде :)   -  person user2115154    schedule 31.03.2015
comment
@ChrisForrence ... Ваша ссылка для настройки композитора действительно помогла ... Спасибо :)   -  person user2115154    schedule 01.04.2015


Ответы (3)


In application/config/config.php

$config['composer_autoload'] = FCPATH.'vendor/autoload.php';

это отлично работает для меня

person aitbella    schedule 24.12.2016
comment
Спасибо большое, что мне очень помогли !! - person saperlipopette; 05.07.2017

Вы должны загрузить его в методы вашего контроллера там, где это необходимо, или, если хотите, загрузить его автоматически. Я использую первое: Сначала: используйте, установите его с помощью композитора в папке приложения:

composer require guzzlehttp/guzzle:~6.0

Во-вторых: позвольте CI автозагрузить композитор (applications / config / config.php)

$config['composer_autoload'] = TRUE;

Затем в вашем контроллере

 public function guzzler_get($url, $uri)
{    
    $client = new GuzzleHttp\Client(['base_uri' => $url]);
    $response = $client->get($uri);
    // print_r($response); // print out response

    // print out headers: 
    // foreach ($response->getHeaders() as $name => $values) {
    //    echo $name . ': ' . implode(', ', $values) . "\r\n";
    // }
    return $response;
}

Использовать:

$your_var = $this->guzzler_get('http://httpbin.org', '/html');

Теперь у вас есть ответ в переменной $your_var. В остальном проверьте документацию. В противном случае используйте более «дружелюбный» метод / библиотеку для HTTP-запросов, например CodeIgniter-cURL или Запросы

person wiZZmnma    schedule 27.05.2015

Я решил добавить следующую инструкцию в начало моего файла .php:

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

но я не уверен, что это хорошая практика ...

person bluish    schedule 03.07.2018