Amazon 的 MWS PHP 客户端库只是一个没有任何 namespace 的 zip 文件,有没有办法将此库与 Laravel 应用程序或任何使用 Composer 进行依赖管理的应用程序一起使用。
最佳答案
当然,只需在您的 Laravel 应用程序中创建您自己的库目录即可。我通常将我的放在 app
目录中,并将其命名为 Libraries
。将源文件转储到一个文件夹中,例如 AmazonMWS
。
.config.inc.php
带有一个自动加载器,但不会被使用。相反,您可能只是在 Laravel 项目中打开 composer.json
并告诉它自动加载以配置为目标的新库目录。例如:
"autoload-dev": {
"classmap": [
"app/Libraries/AmazonMWS/Client.php"
]
}
确保 config.inc.php
可在 AmazonMWS
根目录下访问。
然后运行 composer dump-autoload
重新生成自动加载器。如果操作正确,那么您应该能够在没有 namespace 的情况下实例化任何 MWS 类。
在您的 Controller 中,包括以下使用
:
use \MarketplaceWebServiceProducts_Client;
现在您可以按预期调用您的服务了:
$config = [...];
$service = new MarketplaceWebServiceProducts_Client(
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
APPLICATION_NAME,
APPLICATION_VERSION,
$config);
或者只是省略 use\MarketplaceWebServiceProducts_Client;
并直接使用命名空间前缀进行实例化,由您选择。
关于php - 没有命名空间的 Composer 加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768419/