composer自动加载器psr-0命名空间 [英] composer autoloader psr-0 namespaces

查看:452
本文介绍了composer自动加载器psr-0命名空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个自定义的composer包,但是我有麻烦,为它设置正确的自动加载选项。



我的所有类都在 MyNamespace / Common 命名空间。例如对于包括我的 ArrayHelper 类,我使用 Mynamespace / Common / Helper / ArrayHelper



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

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

我读过这个: composer.json / autoload



任何帮助?

解决方案

您必须浏览命名空间的文件位置。

  :{
psr-0:{MyNameSpace:./<path到您的父目录> }
}

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

  composer.json 
source
\ -Data
| -Controller
\-Repository $然后,在composer.json文件中:

pre> autoload:{
psr-0:{MyNameSpace:source / Data}
}
从PHP调用命名空间

 

code> / *控制器目录中的类的命名空间* /
命名空间MyNameSpace\Controller
/ *存储库目录中类的命名空间* /
命名空间MyNameSpace\Repository


I have create a custom composer package but I am having troubles to set the correct autoload options for it.

All my classes are under MyNamespace/Common namespace. So for example for including my ArrayHelper class I do use Mynamespace/Common/Helper/ArrayHelper.

This is the relevant part of my composer.json:

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

I have read this: composer.json / autoload

Any help?

解决方案

You have to navigate the file location of your namespace.

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

For example, this is my directory structure:

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

Then, in the composer.json file:

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

Then, I can call the namespace from PHP by

/* namespace for classes in controller directory */
namespace MyNameSpace\Controller
/* namespace for classes in repository directory */
namespace MyNameSpace\Repository

这篇关于composer自动加载器psr-0命名空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆