如何用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 相关文章推荐
基于mysql的bbs设计(四)
Oct 09 PHP
PHP实时显示输出
Oct 02 PHP
php Memcache 中实现消息队列
Nov 24 PHP
php递归创建目录的方法
Feb 02 PHP
深入浅出php socket编程
May 13 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
php查询及多条件查询
Feb 26 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
PHP时间相关常用函数用法示例
Jun 03 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 输出缓存详解
2009/06/20 PHP
php str_pad 函数用法简介
2009/07/11 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php生成excel文件的简单方法
2014/02/08 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
JavaScript错误处理
2015/02/03 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
Python实现配置文件备份的方法
2015/07/30 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
2014的自我评价
2014/01/13 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
幼儿园见习报告
2014/10/30 职场文书
模范教师事迹材料
2014/12/16 职场文书
伏羲庙导游词
2015/02/09 职场文书
讲文明倡议书
2015/04/29 职场文书
z-index不起作用
2021/03/31 HTML / CSS