如何用Laravel包含你自己的帮助函数


Posted in PHP onMay 27, 2021

很多教程都会说,你在 composer.json 这个文件中通过添加一个自动加载的文件,就可以实现这个需求。但我认为这不是一个好的方式,当你在 helpers.php 文件中添加了更多的函数时,可读性将变得很差。

下面我将介绍一种方式,让你可以定义很多文件,来包含不同的函数。这将让我们的程序更加整洁和更具可读性。

首先创建一个 HelperServiceProvider.php 服务提供者文件:

php artisan make:provider HelperServiceProvider

使用上面命令,你将在 app\Providers 文件中生成 HelperServiceProvider.php

你可以简单的移除 boot() 方法,我们在这儿不会使用它。

在 register() 方法中我们添加以下代码:

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

这个循环将会遍历 app/Heplers 目录下的所有文件,你可能已经猜到了,现在你可以在这个目录下随便创建文件,它们将会被加载到你的应用程序中,这些帮助函数在你的代码的任何地方都可以被访问(views, models, controllers...)

我们还需要加载这个服务提供者,打开 config/app.php,然后将 HelperServiceProvider 放在你的 AppServiceProvider 上面

...
App\Providers\HelperServiceProvider::class,
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
...

现在让我们创建一个简单的函数,在 app/Helpers 目录中创建一个 Carbon.php 文件,文件中包含以下代码:

<?php

/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}

你不需要添加任何命令空间。如果你想,你可以使用 function_exists 检测这个函数是否存在。

现在,你可以在应用程序的任何你喜欢的位置使用帮助函数 carbon()。现在,如果您需要另一个返回特定格式的函数(仅针对本教程的用例),则可以在同一文件(Carbon.php)中输入该函数:

<?php

/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}
function carbonFormatted($time = null, $tz = null)
{
return carbon($time, $tz)->format('Y-m-d')
}

现在,您可以开始使用自己的PHP文件填充 app / Helpers目录,其中包含您经常使用的帮助程序 

以上就是如何用Laravel包含你自己的帮助函数的详细内容,更多关于用Laravel包含你自己的帮助函数的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
php获取域名的google收录示例
Mar 24 PHP
如何让CI框架支持service层
Oct 29 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 PHP
详解Laravel框架的依赖注入功能
May 27 #PHP
详解PHP Swoole与TCP三次握手
May 27 #PHP
如何用PHP实现分布算法之一致性哈希算法
如何用PHP实现多线程编程
May 26 #PHP
如何用PHP websocket实现网页实时聊天
详解PHP用mb_string处理windows中文字符
May 26 #PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
You might like
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
用Python写冒泡排序代码
2016/04/12 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python中强大的format函数实例详解
2018/12/05 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
主治医师岗位职责
2013/12/10 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
信访工作者先进事迹
2014/01/17 职场文书
《匆匆》教学反思
2014/02/22 职场文书
会务接待方案
2014/02/27 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
C++程序员求职信范文
2014/04/14 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
HTML中的表格元素介绍
2022/02/28 HTML / CSS