Laravel 目录结构:自定义函数的存放位置 0 个改进

问题

我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么放置它会比较好呢?以下有一种推荐的方式。

方案

  1. 创建文件 app/helpers.php
<?php

// 示例函数
function foo() {
    return "foo";
}
  1. 修改项目 composer.json

在项目 composer.json 中 autoload 部分里的 files 字段加入该文件即可:

{
    ...

    "autoload": {
        "files": [
            "app/helpers.php"
        ]
    }
    ...
}
  1. 然后运行:
$ composer dump-autoload

OK,然后你就可以在任何地方用到 app/helpers.php 中的函数了。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 8
keer

我可能更喜欢app\Helpers\*.php

1年前 评论

那为什么在教程里是放在 app/bootstrap 目录下 ?

1年前 评论
DianWang

@Kevinvinvin 一个是直接在入口文件里require,一个是用composer加载,效果是一样的,方式不同而已

1年前 评论
keer

我可能更喜欢app\Helpers\*.php

1年前 评论

不错::smile:

11个月前 评论

helpers.php 放在哪里都可以,只要 composer.json 里能找到

11个月前 评论

喜欢跟教程一样 加载引入

7个月前 评论
遇见猫不怕

哪些方法适合放在helpers.php,我看到些项目,什么方法都往这里堆,有什么比较好建议吗?

1个月前 评论

有些教程是把一些和项目耦合度很高的方法也放helpers,如果判断用户密码是否正确,这些应该独立一些类库处理,我认为helper是一些通用工具方法,最好脱离了这个项目,复制到其他项目也能用,即和业务逻辑无关。比如截取一个url的拓展名,这种方法就放helper 我是这么遵循的

1个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!