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