Я впервые использую BOTH Gozzle и Codeigniter 3.0. Также я признаю, что я использую пространство имен php в первый раз.
Я пытаюсь сделать очень простой запрос на получение, используя Guzzle в соответствии с примерами, представленными в документах. (Документы Guzzle ничего не говорят о кодеригере).
Файлы 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. Серьезность: Сообщение об ошибке: Class 'GuzzleHttp \ Client' не найден. Имя файла: controllers / hello.php Номер строки: 22 Backtrace:
В application/config/config.php
$ config ['composer_autoload'] = FCPATH.'vendor / autoload.php ';
он отлично работает для меня
Вы должны загрузить его в своих методах контроллера, где это необходимо или, если необходимо, автозагрузить его. Я использую первое: Сначала: используйте его, используя композитор в папке приложения:
composer require guzzlehttp/guzzle:~6.0
Второе: пусть CI автозагрузочный композитор (application / 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 или Requests