我正在开发一个全新的Wordpress插件,我想使用Composer自动加载类。
这里是插件目录层次结构:
我的composer.json内容:
{
"autoload": {
"psr-4": {
"G4S_ECommerce\\": "src"
}
}
}
在composer.json所在的目录中,在cmd上,我执行:
composer install -> this generates the vendor/composer folder and the vendore/autoload.php.
composer composer dumpautoload -o -> outputs "Generated optimized autoload files containing 0 classes"
在主文件G4S_Ecommerce.php中,我放置了以下行:
require __DIR__.'/vendor/autoload.php';
与我放在同一文件中
use G4S_Ecommerce\Includes\Ecommerce;
$starter = new Ecommerce();
但是它导致我出现致命错误:未捕获的错误:未找到类'G4S_Ecommerce \ Includes \ Ecommerce'
为什么作曲家dumpautoload -o返回0个类?我在做什么错?
谢谢
首先(从文件结构上不明显),您需要为Ecommerce
类(即G4S_Ecommerce/Includes
)设置名称空间
第二,基于您在autoload指令中声明的内容,composer期望在G4S_Ecommerce
文件夹下找到src
文件夹,并且在该文件夹中,您需要将php类文件放置为与类名(即Ecommerce
)。