找不到composer ps4类


composer ps4 Class not found

我有以下文件结构:

  • ajon/
    • 项目/
      • src/
        • 子项目1/
          • index.php
          • composer.json
        • 子项目2/
          • composer.json

在我的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''": "./" }

而且效果很好。