2015-03-09 29 views
6

Podążyłem za installation guide dla PHP PhantomJS. Po uruchomieniu skryptu testowego korzystania PhantomJS PHP, dostaję błąd:PHP PhantomJS nie ładuje się w klasie przez kompozytora

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

Nie używałem Composer wcześniej, więc może coś z widokiem. Używam tego z MAMP, więc może być pewne szczegóły dotyczące tego, które nie są wymienione w dokumentacji. Jeśli otworzę skrypt testowy w przeglądarce, otrzymam pusty ekran. Dopiero po uruchomieniu php z Terminalu otrzymuję numer Fatal error.

Linia skrypt nie działa na to:

$client = Client::getInstance(); 

dlatego przypuszczam, że nie ładuje się poprawnie z Composer. Mogę potwierdzić, że w /bin są zarówno phantomjs i phantomloader.

Co należy zrobić, aby poprawnie załadować skrypt PHP PhantomJS?

--update--

test.php (zaczerpnięte bezpośrednio z przykładu PHP PhantomJS)

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

jaki skrypt testowy masz na myśli? jesteś pewien, że skrypt autoloadowy kompozytora jest załadowany w tym skrypcie testowym? – ivoba

+0

Mam zaktualizowane pytanie. Zakładam, że polecenie "use" obsługuje automatyczne ładowanie, czy też się mylę? – Fisu

Odpowiedz

10

Trzeba będzie obejmować autoloadery kompozytor w skrypcie, jeśli nie używać samemu .

require 'vendor/autoload.php'; 

To jest autogenerowany skrypt autoload przez kompozytora. Zobacz tutaj https://getcomposer.org/doc/01-basic-usage.md#autoloading

Obawiam się Zastosowanie oświadczenie nie zadba o automatyczne ładowanie, to po prostu określenie nazw patrzeć w za Client klasie.

+0

Ale w moim przypadku nie działa żaden formularz wyjściowy powyżej skryptu. –