php - 没有命名空间的 Composer 加载类

标签 php laravel composer-php amazon-mws

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/

相关文章:

php - 如何在没有指定行的情况下选择一列?

laravel - 为什么删除查询不会执行 Laravel

json - Laravel从数据库读取json

composer-php - 如何获取所有已安装软件包的列表以及 Composer 中的版本?

php - 测试 monlog 包时出现 500 错误

php - 使用 PHP 将值/对列表(简单数组)转换为带有属性的 JSON

php - 当总行数超过一个数字时,从表中删除所有行

PHP正则表达式括号内引号外

php - 如何使用 laravel 执行多语句的原始 sql 查询

php - Composer 和 Yii