如果我们要写一些全局利用的助手函数,该当如何加载到 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 :-)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。