2015-03-31 5 views
7

Я использую BOTH Guzzle и Codeigniter 3.0 в первый раз. Также я признаю, что я использую пространство имен php в первый раз.Class 'GuzzleHttp Client' не найдено

Я пытаюсь сделать очень простой запрос получения с использованием Guzzle в соответствии с примерами, представленными в документах. (Документы 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 была ntered Серьезность: Ошибка Сообщение: Class 'GuzzleHttp \ Client' не найден Имя файла: Число контроллеров/hello.php Line: 22 Backtrace:

+0

Быстрого вопроса; почему бы не использовать Composer для управления Guzzle? –

+0

Не удалось установить Composer на wamp и windows 7. Пробовал как установщик, так и командную строку ... – user2115154

+0

Хорошо, это порядочная причина. [This] (http://stackoverflow.com/a/18786420/899126) может помочь создать композитор, но я, к сожалению, не знаком с настройкой CodeIgniter. Возможно, придется идти в приложение/библиотеки (и оттуда загружается библиотекой '$ this-> load-> ('GuzzleHttp')' или что-то в этом роде) –

ответ

3

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

composer require guzzlehttp/guzzle:~6.0 

Второе: Пусть CI автозагрузку композитор (приложения/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

3

В application/config/config.php

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

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

+0

Большое спасибо, что мне очень помогло! – saperlipopette

Смежные вопросы