如何用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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
php中简单的对称加密算法实现
Jan 05 PHP
PHP解决高并发问题
Apr 01 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
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
python自动化报告的输出用例详解
2018/05/30 Python
python实现随机梯度下降法
2020/03/24 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
八年级英语教学反思
2014/01/09 职场文书
自我鉴定三原则
2014/01/13 职场文书
高中军训第一天感言
2014/03/06 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
公积金具结保证书
2015/05/11 职场文书
电台广播稿范文
2015/08/19 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫