如何用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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
ucenter通信原理分析
Jan 09 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
php比较相似字符串的方法
Jun 05 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
Yii2语言国际化的配置教程
Aug 19 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP code 验证码生成类定义和简单使用示例
May 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
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
简单谈谈React中的路由系统
2017/07/25 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
javascript显示动态时间的方法汇总
2018/07/06 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python操作mysql代码总结
2018/06/01 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Python使用type动态创建类操作示例
2020/02/29 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
班组长安全职责
2014/01/05 职场文书
捐书倡议书
2014/08/29 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
离婚起诉书范本
2015/05/18 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python