【发布时间】:2018-02-14 08:18:15
【问题描述】:
我正在尝试在我的 wordpress 项目中包含一个自动加载器。更具体地说,我正在开发一个插件,其中包含我所有类的 Classes/ 目录。我希望这些类可以通过命名空间访问到我的 wordpress 项目根目录和子文件/文件夹。
我觉得我的 composer.json 应该负责自动加载器的实现,尽管我仍然收到 Class not found 致命错误。有没有其他人遇到过这个问题?我提前感谢任何建议!
这是我迄今为止尝试过的:
./composer.json
{
"autoload": {
"psr-4": {
"Classes\\": "wp-content/plugins/example-plugin/Classes"
}
},
"require": {}
}
那么……
composer install
./index.php(在 wordpress 根目录中)
require_once('./vendor/autoload.php');
$foo = new \Classes\MyService();
var_dump($foo); //Fatal error: Uncaught Error: Class 'Classes\MyService' not found
die();
./wp-content/plugins/example-plugin/Classes/MyService.php
namespace Classes;
class MyService {
【问题讨论】:
-
PSR-4 不会要求文件是
./wp-content/plugins/example-plugin/Classes/Api/MyService.php(特别注意Api目录)? -
嗨,Phil,感谢您的建议,我已经进行了这两项更改,现在仍然很幸运:/(见编辑)
-
添加
autoload字段后,您是否执行过dump-autoload作曲家任务? -
如果将
require_once __DIR__ . '/wp-content/plugins/example-plugin/Classes/MyService.php';添加到脚本顶部会发生什么?
标签: php wordpress composer-php autoload