7

下载解压缩亚马逊的 MWS客户端库api 后,我尝试运行其中一个脚本以查看是否一切正常。

尝试运行文件 GetReportCountSample.php 时出现错误

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

我查看了配置文件并输入了我的凭据,例如:

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

我找不到名为 的 php 文件MarketplaceWebService_Client,我需要帮助,谢谢。

4

3 回答 3

4

没有名为 MarketplaceWebService_Client 的 php 文件。它的Client.php在您下载的库中。MarketplaceWebService_Client 类仅在 client.php 文件中。我认为在 GetReportCountSample.php 中未正确指定Client.php的包含路径。Client.php 可能位于以下路径(在 Samples 文件夹之外):C:\xampp\htdocs\sites\amazon marketplace\Client.php

于 2013-01-23T10:00:05.583 回答
2

在里面.config.inc.php你将有以下内容:

   /************************************************************************
    * 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 . '../../.');

这定义了包含路径,在此程序中用于加载类的所有分类文件。每一个都由 分隔PATH_SEPARATOR。这个函数增加了另一个包含路径,它是当前工作目录之上的2个目录,这不是正确的目录。您必须指向 src 目录。

要解决此问题,请更改'../../.'为指向 src 文件夹所在的目录。我的脚本和 src 目录在同一个父目录中,所以我的代码如下所示:

set_include_path(get_include_path() . PATH_SEPARATOR . getcwd().'/src/');
于 2015-01-22T23:48:11.067 回答
1

我意识到这是一个老问题,但我有一个类似的问题,并认为我会分享我的发现。

此处出现问题是因为您更改了库安装路径。

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

由于不包括 Lib 目录,它会产生此错误。如果你通读 .config.php 你会看到

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

这意味着一旦用下划线分割了类,您就需要使路径正确。它正在寻找路径“MarketplaceWebService/client.php”。通过删除目录“MarketplaceWebService”,它将无法找到该文件来定义类。

要进行纠正,只需将您的库安装到“htdocs\sites\amazonmarketplace\MarketplaceWebService\”,一切都会好起来的。

希望这可以帮助某人。

于 2014-11-07T13:40:18.123 回答