Yii2新增目录如何配置自动加载
目录结构类似这样的:
/
frontend/
common/
backend/
helpers/
Foo.php
vendor/
我在项目根目录新建了个目录helpers,里面建立了个类文件Foo.php,namespace helpers;
但是在use helpers\Foo;的时候,提示helpers\Foo没有找到。
请问这是什么原因呢?是不是Yii和autoload没有把一级目录加进自动加载里面?
要怎么解决这个问题?
目前我是把helpers放到common里面
@光灵小鼠 @八宝粥 helpers放一级目录这种设计确实不好,多谢指点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
如果没记错,Yii2 也是利用 composer 实现 psr-4 映射,可参阅 composer 文档。
你用的是Yii2 advanced模版
这个模版有三个应用
backend 代表后台应用
console 代表控制器应用
frontend 代表前台应用
common 存放三个应用公用的类
= = 你在根目录增加helper?表示你要增加一个helper应用?
在common下面增加一个helper文件夹还差不多
@__FresHmaN 讲的不错。
但是我不建议你放在根目录,建议你放在
common
里面两种途径:
利用yii2本身的方法,即上面有人提到的
setAlias
利用composer, 然后不要忘记
composer dump-autoload
我也没看到
helpersFoo
在哪格式如下
在common/config/bootstrap.php文件内配置:
这种是要配置的。
根目录下小写开头的目录都需要特别的设置,也就是说helpers, frontend, common这些和命名空间不是直接对应的,但是它们之下的文件是对应的。自己看一下文档就了解了。
setAlias()