如何用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安全编程之加密功能
Oct 09 PHP
PHP 截取字符串专题集合
Aug 19 PHP
php 函数中使用static的说明
Jun 01 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
php面试实现反射注入的详细方法
Sep 30 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超牛逼无限极分类生成树方法
2015/05/11 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
Shell编程面试题
2016/05/29 面试题
保安公司服务承诺书
2014/05/28 职场文书
军人离婚协议书样本
2014/10/21 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL
Golang数据类型和相互转换
2022/04/12 Golang
Elasticsearch 配置详解
2022/04/19 Java/Android