2015-03-09 5 views
6

Ich habe die installation guide für PHP PhantomJS gefolgt. Wenn ein Testskript mit PHP PhantomJS verwenden, erhalte ich die Fehlermeldung:PHP PhantomJS lädt nicht in Klasse durch Composer

PHP Fatal error: Class 'JonnyW\PhantomJs\Client' not found in ...

I Komponist nicht verwendet haben, so dass ich vielleicht etwas übersehen. Ich führe dies von MAMP aus, daher kann es einige Besonderheiten geben, die in der Dokumentation nicht erwähnt werden. Wenn ich das Testskript in einem Browser öffne, bekomme ich einen leeren Bildschirm. Es ist nur vom Laufen des php vom Terminal, dass ich die Fatal error bekomme.

Die Linie das Skript nicht eingeschaltet ist:

$client = Client::getInstance(); 

ich deshalb davon ausgehen, dass es nicht richtig von Composer geladen ist. Ich kann überprüfen, dass in /bin beide phantomjs und phantomloader sind.

Welche Schritte sollte ich unternehmen, um das PHP PhantomJS-Skript korrekt geladen zu bekommen?

--update--

test.php (direkt aus PHP PhantomJS Beispiel genommen)

use JonnyW\PhantomJs\Client; 

$client = Client::getInstance(); 

$request = $client->getMessageFactory()->createRequest(); 
$response = $client->getMessageFactory()->createResponse(); 

$request->setMethod('GET'); 
$request->setUrl('http://google.com'); 

$client->send($request, $response); 

if($response->getStatus() === 200) { 
    echo $response->getContent(); 
} 
+0

Welches Testskript meinst du? Sind Sie sicher, dass das Autoload-Skript des Composers in dieses Testskript geladen wurde? – ivoba

+0

Haben Sie die Frage aktualisiert. Ich vermutete, dass der 'use'-Befehl das Autoloading übernimmt, oder liege ich falsch? – Fisu

Antwort

10

Sie den Komponisten Autoloader in Ihrem Skript müssen, wenn Sie selbst eine Beurteilung nicht verwenden .

require 'vendor/autoload.php'; 

Dies ist ein automatisch erstelltes Autoload-Skript von Composer. Siehe hier https://getcomposer.org/doc/01-basic-usage.md#autoloading

Ich fürchte, die Verwenden Anweisung nicht den automatischen Ladens kümmern, es wird nur den Namensraum definiert für die -Client Klasse suchen in.

+0

Aber in meinem Fall funktioniert es kein Ausgabeformular über Skript. –