composer autoloader psr-0名称空间

brp*_*paz 12 php namespaces autoload psr-0 composer-php

我已经创建了一个自定义编辑器包,但我遇到了为它设置正确的自动加载选项的麻烦.

我的所有类都在MyNamespace/Common命名空间下.所以例如我包括我的ArrayHelper课程Mynamespace/Common/Helper/ArrayHelper.

这是我的相关部分composer.json:

"autoload": {
    "psr-0": { "MyNamespace\\": "" }
} 
Run Code Online (Sandbox Code Playgroud)

我读过这个:composer.json/autoload

有帮助吗?

Kar*_*elG 16

您必须导航命名空间的文件位置.

"autoload": {
    "psr-0": { "MyNameSpace": "./<path to your parent directory>" }
}
Run Code Online (Sandbox Code Playgroud)

例如,这是我的目录结构:

composer.json
source
  \-Data
    |-Controller
    \-Repository
Run Code Online (Sandbox Code Playgroud)

然后,在composer.json文件中:

"autoload": {
    "psr-0": { "MyNameSpace": "source/Data" }
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以通过PHP调用命名空间

/* namespace for classes in controller directory */
namespace MyNameSpace\Controller
/* namespace for classes in repository directory */
namespace MyNameSpace\Repository
Run Code Online (Sandbox Code Playgroud)

  • 这不是PSR-4吗? (7认同)
  • 这不应成为PSR-0的可接受答案。 (3认同)