我从这里下载了PHP亚马逊MWS报告客户端库:
我试图让它工作,但看起来图书馆没有开箱即用,或者有些东西我不能完全理解。例如,在samples文件夹中有一些示例函数,可以让您立即加快速度,但是当您运行其中任何一个时,PHP会抱怨缺少类。让我们看看其中一个的顶线之一:
Array
(
[111] => Array
(
[0] => Array
(
[2] => Array
(
[0] => Array
(
[service_providers] => Array
(
[0] => Google
)
)
)
)
)
)
所以它实例化了MarketplaceWebService_Client,但是该类既未附加到此文件,也未在其中找到。快速搜索后,我发现该功能存在于以下层次结构中:
MarketplaceWebService / Client.php
你能看到类名的相似之处吗?这应该怎么样?我应该使用require_once添加所有这些文件,还是应该有任何自动加载它们的机制?
另一个:
下的类MarketplaceWebService_Model_GetReportListRequestMarketplaceWebService /型号/ GetReportListRequest.php
我知道我可以创建一个__autoload函数并简单地动态附加这些类,但这是作者想到的吗?
答案 0 :(得分:1)
PHP具有autoload功能,如果运行时不存在必需的类,则可以调用函数。此功能允许脚本通过包含包含它的文件来生成缺少的类。
这是一个改编自PHP manual的例子。
// Your missing class is called MarketplaceWebService_Client
// The code for this class is in MarketplaceWebService/Client.php
// define a function that will be called when a class does not yet exist
function my_autoloader($class) {
// implement the rules to convert the class into the file naming convention
$path = str_replace('_', '/', $class) . 'php';
// if there is a match, then include it now
if(file_exists($path)) {
include_once $path;
}
}
// tell PHP about the autoload function
spl_autoload_register('my_autoloader');
您可能需要调整上面的示例以适合您的特定代码和文件夹结构。
答案 1 :(得分:0)
我无法与PHP客户端库通信,但C#库是开箱即用的,并从头开始编译。 MWS团队针对这些类型的问题提供了专门的联系我们页面。他们愿意与您一起解决您的问题并让您感动。您必须使用卖家凭据登录才能访问此页面。试一试。