作曲家自动加载器 psr-0 命名空间
Posted
技术标签:
【中文标题】作曲家自动加载器 psr-0 命名空间【英文标题】:composer autoloader psr-0 namespaces 【发布时间】:2013-08-11 08:21:39 【问题描述】:我已经创建了一个自定义作曲家包,但我无法为其设置正确的自动加载选项。
我所有的课程都在MyNamespace/Common
命名空间下。例如,为了包含我的ArrayHelper
课程,我确实使用Mynamespace/Common/Helper/ArrayHelper
。
这是我composer.json
的相关部分:
"autoload":
"psr-0": "MyNamespace\\": ""
我已阅读:composer.json / autoload
有什么帮助吗?
【问题讨论】:
【参考方案1】:您必须导航命名空间的文件位置。
"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 组件,所以我必须像这样配置目标目录:getcomposer.org/doc/04-schema.md#target-dir 命名空间定义分隔符应该使用“\”而不是“/”以上是关于作曲家自动加载器 psr-0 命名空间的主要内容,如果未能解决你的问题,请参考以下文章