您的位置 首页 php

3分钟短文 | Laravel 注册全局助手函数的2种方式

引言

laravel 框架内提供了 Str,Arr 等帮助类,用于字符串操作,数组操作,将PHP内置的 str 开头的函数,和 array 开头的函数,使用面向对象的方式进行操作。

如果我们要写一些全局使用的助手函数,应该如何加载到 Laravel 框架内呢?本文就来说一说。

学习时间

首先我们创建一个文件,比如路径地址就在 app/lib/helper.php 内。然后声明一个函数:

 if (! function_exists('checkWorking')) {
    function checkWorking()
    {
        return "Hey, it's working!";
    }
}  

然后打开 composer.json 文件,在文件加载的配置部分,添加如下信息:

 "autoload": {
    ....
    "files": [
        "app/lib/helpers.php"
    ]
},  

这样写框架还不会自动加载,我们需要使用 composer 指令更新系统的自动加载文件。在根目录,命令行内执行:

 composer dump-autoload  

之后在框架内的任何地方,就可以直接访问 helper 文件内声明的函数了。

Laravel 的方式

我们也可以使用laravel加载类库,注册类库的办法,进行助手函数文件的动态加载。首先创建一个 ServiceProvider,命令行内执行:

 php artisan make:provider HelperServiceProvider  

这会创建 HelperServiceProvider 文件,在 registe 方法内实现加载文件的逻辑:

 public function register()
{
     foreach  (glob(app_path().'/lib/*.php') as $filename){
        require_once($filename);
    }
}  

这一段加载很直观,就是使用 glob 函数扫描目录 app/lib/*.php 规则匹配的所有文件,并使用 require_once 方法加载进来。

当然了,写完这些,还是需要更新自动加载的代码,命令行执行

 composer dump-autoload  

效果与上一节相同。可是更方便在程序内处理,因为我们把加载逻辑,植入到了框架加载流程内,比较容易控制。

写在最后

本文通过2种方式动态加载助手函数到全局,一种是修改 composer 配置文件,一种是在 laravel 内使用“服务提供者”进行注册。

我们更倾向于于第二种方式,因为维护程序较为方便,也更直观,沿袭了框架开发的统一原则。

Happy coding 🙂

文章来源:智云一二三科技

文章标题:3分钟短文 | Laravel 注册全局助手函数的2种方式

文章地址:https://www.zhihuclub.com/77895.shtml

关于作者: 智云科技

热门文章

网站地图