如何用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完整的日历类(CLASS)
Nov 27 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP生成图片验证码、点击切换实例
Jun 25 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
PHP使用array_fill定义多维数组的方法
Mar 18 PHP
php自定义扩展名获取函数示例
Dec 12 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
php5.x禁用eval的操作方法
Oct 19 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数组实例总结与说明
2011/08/23 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
js loading加载效果实现代码
2009/11/24 Javascript
jQuery 选择器理解
2010/03/16 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python利用IPython提高开发效率
2016/08/10 Python
Django REST framework视图的用法
2019/01/16 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
如何基于Python按行合并两个txt
2020/11/03 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
linux下进程间通信的方式
2013/01/23 面试题
六个一活动实施方案
2014/03/21 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
python实现简单区块链结构
2021/04/25 Python