2015-03-31 16 views
7

Sto usando ENTRAMBI Guzzle e Codeigniter 3.0 per la prima volta. Inoltre ammetto che sto usando lo spazio dei nomi PHP per la prima volta.Classe 'GuzzleHttp Client' non trovata

Sto provando a fare una richiesta di ottenere molto semplice usando Guzzle secondo gli esempi forniti nei documenti. (I documenti di Guzzle non dicono nulla sul codeigniter).

file

Il gozzovigliare si trovano a application/classe/guzzle

Ecco la mia molto semplice regolatore

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; 
    } 

Questo è il mio semplice vista

<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> 

Questo è l'errore che sono get

Un errore PHP era encou ntered Severity: Errore Messaggio: Class 'GuzzleHttp \ Client' non trovato Nome file: Numero controllori/hello.php Linea: 22 Backtrace:

+0

domanda rapida; perché non usare Composer per gestire Guzzle? –

+0

Impossibile installare Composer su wamp e windows 7. Ho provato sia l'installer che la riga di comando ... – user2115154

+0

Ok, questa è una buona ragione. [Questo] (http://stackoverflow.com/a/18786420/899126) potrebbe aiutare a configurare il compositore, ma sfortunatamente non ho familiarità con la configurazione di CodeIgniter. Potrebbe essere necessario andare in applicazioni/librerie, sebbene (e da lì, caricato da '$ this-> load-> library ('GuzzleHttp')' o qualcosa del genere) –

risposta

3

è necessario caricare nei tuoi metodi del controller dove necessario o se lo si desidera , caricarlo automaticamente. Io uso l'ex: Primo: l'uso installarlo utilizzando compositore nella cartella dell'applicazione:

composer require guzzlehttp/guzzle:~6.0 

Secondo: Let CI autoload compositore (applicazioni/config/config.php)

$config['composer_autoload'] = TRUE; 

Poi, nel tuo Controller

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; 
} 

Usa:

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

Ora la risposta è nella variabile $your_var. Per il resto, controlla la documentazione. In caso contrario, utilizzare un "amichevole" Metodo/libreria per le vostre richieste HTTP come CodeIgniter-cURL o Requests

3

In application/config/config.php

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

funziona bene per me

+0

Grazie mille che mi ha aiutato molto !! – saperlipopette