Laravel配置公共函数


问题

开发过程中总是会写一些与业务无关的公共函数,要让这些函数方便地在任何地方使用还需要配置下。
网上搜了一下解决方案,都是利用了autoload功能,这种方法配置后还要使用命令行composer dump-autoload去使其生效,在使用时还要引入函数,比如use App\xxx\foo,每个函数都要use,很麻烦。

更好的解决方案

在stackoverflow上找到了一个我认为更好的解决方案,不需要用命令行,而且更OOP。

步骤:

  1. App目录下创建一个Common文件夹。
  2. Common目录下创建一个Helper.php文件,所有的公共函数都写在这里,并定义为静态函数。
<?php

namespace App\Common;

class Helper
{
    static public function foo(): string
    {
        return 'hello';
    }
}
  1. 在需要使用的地方引入Helper
use App\Common\Helper;

愉快地使用吧!

$str = Helper::foo();

原答案提到要在config/app.php中注册别名,这样只是为了方便use,比如可以直接use Helper,而不需要引入名称空间。但是这样对IDE代码提示不友好,所以个人不建议用别名。

参考资料

https://stackoverflow.com/a/44022161