如何用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实现用户认证及管理完全源码
Mar 11 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
php实现telnet功能示例
Apr 08 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
开启PHP的伪静态模式
Dec 31 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
PHP封装的非对称加密RSA算法示例
May 28 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中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
基于javascript的拖拽类封装详解
2019/04/19 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
如何设置Java的运行环境
2013/04/05 面试题
知识竞赛活动方案
2014/02/18 职场文书
《春晓》教学反思
2014/04/20 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
安装工程师岗位职责
2015/02/13 职场文书
违纪学生保证书
2015/02/27 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
GO中sync包自由控制并发示例详解
2022/08/05 Golang