我有以下文件结构:
- ajon/
- 项目/
- src/
- 子项目1/
- index.php
- composer.json
- 子项目2/
- composer.json
- 子项目1/
- src/
- 项目/
在我的composer.json中,我有:
"psr-4": {
"ajon\project\subproject1\": "src/subproject1/",
"ajon\project\subproject2\": "src/subproject2/"
}
在子项目1中,我有Models/Foo.php,它看起来像:
namespace ajonprojectsubproject1Models;
class Foo { ... }
在子项目1/index.php中,我有:
require_once 'vendor/autoload.php';
use ajonprojectsubproject1ModelsFoo;
我得到:
Class 'ajonprojectsubproject1ModelsFoo' not found.
作曲家会在正确的文件夹中查找
namespace ajonprojectsubproject1
,然后知道从那里查找ModelsFoo
吗?我做错什么了吗?
- 有更好的方法吗
我想明白了。事实证明,psr-4指令与composer.json文件所在的位置有关。
我将composer.json设置为:
"psr-4": { "ajon\project\subproject1\": "./" }
而且效果很好。