2012-07-22 14 views
7

Po pobraniu rozpakowania aplikacji Amazon's MWS client library api próbowałem uruchomić jeden ze skryptów, aby sprawdzić, czy wszystko działa.Amazon mws api Klasa "MarketplaceWebService_Client" nie znaleziono błąd

podczas próby uruchomienia pliku GetReportCountSample.php pojawia się błąd

Fatal error: Class 'MarketplaceWebService_Client' not found in C:\xampp\htdocs\sites\amazon marketplace\Samples\GetReportCountSample.php on line 68 

Przejrzałem pliku konfiguracyjnym i mam moje poświadczenia wejściowe takie jak:

define('AWS_ACCESS_KEY_ID', '<key id>');     //has been input 
define('AWS_SECRET_ACCESS_KEY', '<secret key id>');  //has been input 

define('APPLICATION_NAME', '<Your Application Name>'); //no idea what this is 
define('APPLICATION_VERSION', '<Your Application Version or Build Number>'); //no idea 

define ('MERCHANT_ID', '<merch id>');     //has been input 

mogę nie znajdę pliku php o nazwie MarketplaceWebService_Client, potrzebuję pomocy, dzięki.

+0

Mam ten sam problem. Myślę, że ma to coś wspólnego z 'set_include_path (get_include_path(). PATH_SEPARATOR. '../../.');' Postawię odpowiedź, jeśli to wymyślę. –

+0

@VitaliyIsikov Hey Vit, Porzuciłem tam bezużyteczne pliki zip i stworzyłem prostsze funkcje przy użyciu xml. i tak dziękuję –

Odpowiedz

4

Nie ma pliku php o nazwie MarketplaceWebService_Client. Jego Client.php w pobranej bibliotece. Klasa MarketplaceWebService_Client znajduje się tylko w pliku client.php. Myślę, że ścieżka zawiera Client.php nie jest poprawnie określony w GetReportCountSample.php. Client.php mogą znajdować się w następującej ścieżce (Poza folderze Samples): C: \ xampp \ htdocs \ witrynach \ Amazon Marketplace \ Client.php

+0

Witam, co to jest tutaj APPLICATION_VERSION- numer konta programisty? –

1

Zdaję sobie sprawę, że jest to stare pytanie, ale miałem podobny problem i myśl, że podzielę się moimi odkryciami.

Problem tutaj wystąpił, ponieważ zmieniono ścieżkę instalacji biblioteki.

... not found in C:\xampp\htdocs\sites\amazon marketplace\Samples\GetReportCountSample.php 

Nie włączając katalogu Lib, wygenerował ten błąd. Jeśli czytasz przez .config.php zobaczysz

function __autoload($className){ 
    $filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php'; 
    $includePaths = explode(PATH_SEPARATOR, get_include_path()); 
    foreach($includePaths as $includePath){ 
     if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){ 
      require_once $filePath; 
      return; 
     } 
    } 
} 

Oznacza to, że trzeba mieć ścieżka poprawne raz klasa została podzielona z podkreśleniem. W tym celu szuka ścieżki "MarketplaceWebService/client.php". Po usunięciu katalogu "MarketplaceWebService" nie uda się znaleźć tego pliku, aby zdefiniować klasę.

Aby to naprawić, po prostu zainstaluj bibliotekę w "htdocs \ sites \ amazon marketplace \ MarketplaceWebService \" i wszystko powinno być dobrze.

Mam nadzieję, że to komuś pomaga.

2

Wewnątrz .config.inc.php trzeba będzie następujący:

/************************************************************************ 
    * OPTIONAL ON SOME INSTALLATIONS 
    * 
    * Set include path to root of library, relative to Samples directory. 
    * Only needed when running library from local directory. 
    * If library is installed in PHP include path, this is not needed 
    ***********************************************************************/ 
    set_include_path(get_include_path() . PATH_SEPARATOR . '../../.'); 

ta określa m.in. ścieżek, które są wykorzystywane w tym programie, aby załadować wszystkie pliki dla różnorodnych klas. Każdy z nich jest oddzielony przez PATH_SEPARATOR. Ta funkcja dodaje kolejną ścieżkę dołączania, która jest 2 katalogami nad bieżącym katalogiem roboczym, a to nie jest właściwy katalog. Musisz wskazać katalog src.

Aby to naprawić, zmień '../../.' tak, aby wskazywała katalog, w którym znajduje się folder src. Moje skrypty i katalog src znajdują się w tym samym katalogu nadrzędnym, więc mój kod wygląda następująco:

set_include_path(get_include_path() . PATH_SEPARATOR . getcwd().'/src/');