如何用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 删除数组元素
Jan 16 PHP
php数据库密码的找回的步骤
Jan 12 PHP
php之XML转数组函数的详解
Jun 07 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
php查询内存信息操作示例
May 09 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的ASP防火墙
2006/10/09 PHP
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
基于php权限分配的实现代码
2013/04/28 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
Bootstrap基础学习
2015/06/16 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
Python网页解析器使用实例详解
2020/05/30 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
行政经理岗位职责
2013/11/09 职场文书
银行类自荐信
2014/02/04 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
《春天来了》教学反思
2014/04/07 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js