如何用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的FTP学习(三)
Oct 09 PHP
第六节--访问属性和方法
Nov 16 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php cli模式学习(PHP命令行模式)
Jun 03 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
PHP生成器简单实例
May 13 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
PDO::errorInfo讲解
Jan 28 PHP
实例讲解PHP表单验证功能
Feb 15 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 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中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python的turtle库使用详解
2019/05/10 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
java程序员面试交流
2012/11/29 面试题
普通员工辞职信
2014/01/17 职场文书
五型班组建设方案
2014/02/10 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
应届生面试求职信
2014/07/02 职场文书
校运会加油稿大全
2015/07/22 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers