没有命名空间的 Composer 加载 class
Composer load class without Namespace
Amazon 的 MWS PHP 客户端库只是一个没有任何命名空间的 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
重新生成自动加载器。如果操作正确,那么您应该能够在没有命名空间的情况下实例化任何 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;
并直接使用命名空间前缀实例化,您自己选择。
Amazon 的 MWS PHP 客户端库只是一个没有任何命名空间的 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
重新生成自动加载器。如果操作正确,那么您应该能够在没有命名空间的情况下实例化任何 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;
并直接使用命名空间前缀实例化,您自己选择。