2015-07-05 16 views
13

Sto cercando di utilizzare Mandrillo per inviare e-mail tramite il mio quadro laravel, però sto ricevendo il seguente errore:laravel: Class 'GuzzleHttp Client' non trovato

FatalErrorException in MandrillTransport.php line 114: Class 'GuzzleHttp\Client' not found

Ho installato Guzzle utilizzando il seguente comando nel terminale:

"guzzlehttp/guzzle": "~4.0" 

Secondo la documentazione di laravel ho bisogno di aggiungere "guzzlehttp/guzzle": "~4.0" al mio file composer.json, ma non sono sicuro se in cui ho messo che sia corretta come io continuo a vedere l'errore.

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "laravel/framework": "5.0.*", 
     "illuminate/html": "^5.0", 
     "guzzlehttp/guzzle": "~4.0" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "~4.0", 
     "phpspec/phpspec": "~2.1" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "post-create-project-cmd": [ 
      "php -r \"copy('.env.example', '.env');\"", 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    } 
} 

Ecco la lista dei pacchetti mia domanda è, si noti che guzzle ha una versione diversa: 4.2.3 che ho provato anche l'aggiornamento per ma ancora ottenere lo stesso errore. list of packages installed

+0

Come risolvere questo problema? – Unbreakable

risposta

4

Dopo aver aggiornato il file composer.json è necessario eseguire il comando update per risolvere ed installare le dipendenze:

composer update 

o, se il compositore non è nel vostro percorso:

php composer.phar update 
+0

Ho provato questo, ma il problema persiste ancora. Ecco l'output di 'compositore update':' Caricamento dei repository di compositore con informazioni sul pacchetto Aggiornamento delle dipendenze (incluso require-dev) Niente da installare o aggiornare Generazione di file di caricamento automatico Generazione del caricatore di classe ottimizzato' – Imran

+0

@Imran Dopo aver visto gli aggiornamenti sembra che Guzzle sia installato correttamente, ma non viene caricato automaticamente. Il tuo autoloader del compositore dovrebbe avere una voce per GuzzleHttp (controlla in 'vendor/compositore/autoload_psr4.php' e fammi sapere se esiste una riga per' GuzzleHttp'). Ho solo familiarità con il compositore, non con Laravel, ma sembra che dovresti eseguire il comando 'php artisan dump-autoload' per rigenerare il caricatore automatico di Laravel. – Paulpro

+0

Ho provato a utilizzare 'php artisan dump-load', ma ottengo un errore 'Command not defined'. Ho anche provato 'compositore dump-autoload' che ha generato i file di caricamento automatico ma sto ancora ricevendo lo stesso errore di classe non trovato nella mia domanda originale. – Imran

2

Hai provato:

artisan clear-compiled 

o se artigianale non è disponibile tenta di rimuovere compiled.php se esiste (nella directory vendor) e il lancio compositore dumpautoload

+0

Sì, ho provato questo, ma continuo a ricevere l'errore. Non c'è un file compilato.php nella directory del mio fornitore e ho già eseguito 'composer dump-autoload' – Imran

+0

Forse dovresti rimuovere il tuo compositore.lock e la cartella del venditore e provare a reinstallare tutto se è possibile. –

-1

Sono ignaro di cui questo ha funzionato per me, ho visto questo in un forum da qualche parte

I appena aggiunto questo generatore captcha al file composer.json

"mews/captcha": "~2.0.", 

aggiunto a tutto il pacchetto di richiedere

"require": { 
    "php": ">=5.5.9", 
    "laravel/framework": "5.1.*", 
    "laravelcollective/html": "5.1.*", 
    "laracasts/flash": "~1.3", 
    "mews/captcha": "~2.0.", 
    "guzzlehttp/guzzle": "~4.0" 
    }, 

Se som euno sa perché questo ha funzionato davvero mi graffiava il prurito nel cervello.

+0

Potrebbe essere dovuto al fatto che mews/captcha richiedono la dipendenza. – FooBar

0

Ho ricevuto questo errore quando ho provato a eseguire il mio codice al di fuori del framework Laravel durante il test in un file standalone. Ha funzionato per me quando l'ho spostato all'interno di un controller.

7

Aprite il vostro terminale alla base del progetto e immettere

composer.phar require guzzlehttp/guzzle 

Ha funzionato per l'API mailgun. Per qualche ragione, il metodo suggerito al doc mail del laravel

"guzzlehttp/guzzle": "~5.3|~6.0" 

non fa il compositore scaricare i codici sorgente Guzzle. A proposito, non ho trovato che cosa significa | nel determinare la versione. Questo comando scarica solo il codice PSR.

In questo momento, la soluzione potrebbe funzionare. Tuttavia,, essere a conoscenza di problemi di compatibilità. Perché il comando installava l'ultima versione stabile, non quella adatta.

1

Ho avuto lo stesso problema. Ho usato una vecchia versione per funzionare. Non funziona più a partire dalla versione 4. Funziona su versione 3.8.1

Così si può aggiungere "guzzlehttp/guzzle": "~ 3" per opere

0

È possibile risolvere questo problema per aggiungere "mews/captcha": "1.0.1" e "guzzlehttp/guzzle": "~4.0" nel file compositore.json. E quindi è necessario eseguire il comando composer update sul terminale.

Ho provato su Laravel 4. Funziona per me.

1

Se stai usando laravel quando si esegue in questo errore, basta eseguire:

composer require guzzlehttp/guzzle 

e riprovare.

Problemi correlati