我在我的插件中使用了Composer自动加载,以方便管理所有的文件和类,而不是每次都写。require_once
然而,我在尝试访问本地woocommerce类时遇到了麻烦。我的类是用命名空间来定义的,比如说。
<?php
namespace Inc\Api;
class RestClientApi
{
....
}
如果我试图调用一个woocommerce类内的这个类,例如:。
<?php
namespace Inc\Api;
class RestClientApi
{
public $example = new WC_product();
}
我得到的错误信息是 Class Inc/Api/WC_product not found
我知道这个错误的意思,但我不知道如何从我的自定义插件中使用Woocommerce类,考虑到我在我的自定义插件类中使用自动加载和命名空间。
更新按照要求,我添加了我的自动加载配置,这很简单,我只是调用我的inc文件夹。
"autoload": {
"psr-4": {"Inc\\": "./inc"}
}
在你的插件composer.json中,添加这样的内容(你可以根据自己的需要调整它)。
"autoload": {
"psr-4": {
"WooCommerceNamespace\\":"path/to/woocomerce/classes/folder"
}
},
然后运行
composer dump-autoload
composer.json文件夹内。
然后添加到你的插件文件中:使用WooCommerceNamespace\WC,现在WC类应该可以使用了。
(如果你的WC.php文件已经有一个命名空间声明,请在你的psr-4声明中使用该命名空间)。