Laravel 目录结构:自定义函数的存放位置
问题
我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么放置它会比较好呢?以下有一种推荐的方式。
方案
- 创建文件 app/helpers.php
<?php
// 示例函数
function foo() {
return "foo";
}
- 修改项目 composer.json
在项目 composer.json 中 autoload 部分里的 files 字段加入该文件即可:
{
...
"autoload": {
"files": [
"app/helpers.php"
]
}
...
}
- 然后运行:
$ composer dump-autoload
OK,然后你就可以在任何地方用到 app/helpers.php 中的函数了。
Laravel 社区 Wiki
关于 LearnKu
高认可度评论:
我可能更喜欢
app\Helpers\*.php那为什么在教程里是放在
app/bootstrap目录下 ?@Kevinvinvin 一个是直接在入口文件里require,一个是用composer加载,效果是一样的,方式不同而已
我可能更喜欢
app\Helpers\*.php不错::smile:
helpers.php放在哪里都可以,只要composer.json里能找到喜欢跟教程一样 加载引入
哪些方法适合放在helpers.php,我看到些项目,什么方法都往这里堆,有什么比较好建议吗?
有些教程是把一些和项目耦合度很高的方法也放helpers,如果判断用户密码是否正确,这些应该独立一些类库处理,我认为helper是一些通用工具方法,最好脱离了这个项目,复制到其他项目也能用,即和业务逻辑无关。比如截取一个url的拓展名,这种方法就放helper 我是这么遵循的
看来自定义函数的存放位置没能统一啊,看了几篇教程,都是放在 bootstrap 文件夹下的
@keer composer 里 不能写 * 吗?
只能写具体名字。