如何用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中cookie的作用域
Mar 27 PHP
php array_flip() 删除数组重复元素
Jan 14 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP超级全局变量数组小结
Oct 04 PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
PHP内存使用情况如何获取
Oct 10 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP简单实现循环链表功能示例
Nov 10 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中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
Smarty模板语法详解
2019/07/20 PHP
制作特殊字的脚本
2006/06/26 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
Javascript继承机制详解
2017/05/30 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
Python实现Dijkstra算法
2018/10/17 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
破坏寝室公物检讨书
2014/11/17 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
教师节慰问信
2015/02/15 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
升学宴家长答谢词
2015/09/29 职场文书
Nginx利用Logrotate实现日志分割
2022/05/20 Servers