如何用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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
Feb 15 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
php中yii框架实例用法
Dec 22 PHP
php访问对象中的成员的实例方法
Nov 17 PHP
如何解决php-fpm启动不了问题
Nov 17 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中,文件上传
2006/12/06 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python中请不要再用re.compile了
2019/06/30 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python excel和yaml文件的读取封装
2021/01/12 Python
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
工程造价自荐信
2013/10/09 职场文书
卫校毕业生自我鉴定
2013/10/31 职场文书
工程师岗位职责规定
2014/02/26 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
暑期社会实践证明书
2014/11/17 职场文书
入党积极分子个人总结
2015/03/02 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android