如何用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 相关文章推荐
一个用于网络的工具函数库
Oct 09 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
PHP中header和session_start前不能有输出原因分析
Jan 11 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
详解PHP中的PDO类
Jul 06 PHP
php反射类ReflectionClass用法分析
May 12 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
php实现的生成排列算法示例
Jul 25 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 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的FTP学习(二)
2006/10/09 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
PHP数据类型的总结分析
2013/06/13 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
对python3新增的byte类型详解
2018/12/04 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
python梯度下降算法的实现
2020/02/24 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
python调用摄像头的示例代码
2020/09/28 Python
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
知识竞赛活动方案
2014/02/18 职场文书
努力学习演讲稿
2014/05/10 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技