Composer自动加载器PSR-0命名空间

14

我已经创建了一个自定义的Composer包,但我在设置正确的自动加载选项时遇到了问题。

所有我的类都在MyNamespace/Common命名空间下。例如,为了包含我的ArrayHelper类,我使用Mynamespace/Common/Helper/ArrayHelper

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

"autoload": {
    "psr-0": { "MyNamespace\\": "" }
} 

我已经阅读了这个:composer.json / autoload

需要帮助吗?

1个回答

20

你需要导航到命名空间的文件位置。

"autoload": {
    "psr-0": { "MyNameSpace": "./<path to your parent directory>" }
}

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

composer.json
source
  \-Data
    |-Controller
    \-Repository

然后,在composer.json文件中:

"autoload": {
    "psr-0": { "MyNameSpace": "source/Data" }
}

然后,我可以在这些命名空间中定义类:

/* namespace for classes in controller directory */
namespace MyNameSpace\Controller;

/* namespace for classes in repository directory */
namespace MyNameSpace\Repository;

我的包结构类似于Symfony2组件,所以我必须像这样配置目标目录:http://getcomposer.org/doc/04-schema.md#target-dir - brpaz
1
命名空间定义分隔符应该使用 "" 而不是 "/"。 - thenetimp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接