没有命名空间的Composer加载类

时间:2016-08-04 13:15:32

标签: php laravel composer-php amazon-mws

亚马逊的MWS PHP客户端库只是一个没有任何命名空间的zip文件,有没有办法将这个库与Laravel应用程序一起使用,或者使用任何使用composer进行依赖关系管理的应用程序。

1 个答案:

答案 0 :(得分:2)

当然,只需在Laravel应用程序中创建自己的库目录。我通常将我的内容放在app目录中,并将其命名为Libraries。将源文件转储到AmazonMWS

等文件夹中

.config.inc.php附带自动加载器,但不会使用。相反,您可以在Laravel项目中打开composer.json并告诉它自动加载针对配置的新Library目录。例如:

"autoload-dev": {
    "classmap": [
        "app/Libraries/AmazonMWS/Client.php"
    ]
}

确保config.inc.php root可以访问AmazonMWS

然后运行composer dump-autoload以重新生成自动加载器。如果操作正确,那么您应该能够在没有命名空间的情况下实例化任何MWS类。

在您的控制器中,包含以下use

use \MarketplaceWebServiceProducts_Client;

现在您可以按预期呼叫您的服务:

$config = [...];

$service = new MarketplaceWebServiceProducts_Client(
    AWS_ACCESS_KEY_ID,
    AWS_SECRET_ACCESS_KEY,
    APPLICATION_NAME,
    APPLICATION_VERSION,
    $config);

或者只是省略use \MarketplaceWebServiceProducts_Client;并直接使用名称空间前缀进行实例化,这是您的选择。