laravel创建类似ThinPHP中functions.php的全局函数


Posted in PHP onNovember 26, 2016

前言

一直觉得ThinPHP中的公共函数是一个很好的设计,因为我们只需要在functions.php中对共用的函数进行封装,然后就可以在全局直接进行调用了。其实Laravel中也有类似的功能的,比如说助手函数,类似于session()等函数,这些助手函数也是全局可以调用的,非常的方便。

下面总结一下,两者之间的差别以及相同点。

TP3系列中functions.php文件默认其实是空文件,很好找。我们可以直接封装代码。

Laravel5系列中的path/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 。该文件中封装的函数就是全局函数,可以在任意区域进行调用。

但是,Laravel中的helper.php中已经封装好了很多的内置助手函数,一般不建议直接在该文件中进行自己函数的封装,而是采用新创建一个文件,里面放置需要封装的函数。

这里有一点需要说明:全局函数的实现是依靠在初始化的时候,将helps.php或者functions.php直接进行了加载。而Laravel中path/bootstrap/autoload.php中可以定义在初始化的时候加载什么文件。

在默认的情况下,有以下一条加载配置:

require __DIR__.'/../vendor/autoload.php';

同样,我们也可以加载其他的文件,比如以下的加载操作:

require __DIR__.'/../app/Common/functions.php';

这样,我们就可以直接在这个加载的文件中直接封装需要的函数,这样也就实现了我们的需要。

另外,有人还推荐了另外一种方法,就是使用一个控制器,在控制器中的类中封装静态的方法,在需要的地方,引入所需的控制器,也可以实现我们的需求。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用laravel能有一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
php 结果集的分页实现代码
Mar 10 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
php+ajax实现无刷新分页
Nov 18 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
PHP微信H5支付开发实例
Jul 25 PHP
php快速导入大量数据的实例方法
Sep 23 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 #PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 #PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 #PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 #PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 #PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 #PHP
Zend Framework上传文件重命名的实现方法
Nov 25 #PHP
You might like
详解php中的implements 使用
2017/06/13 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python装饰器的函数式编程详解
2015/02/27 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
自我反省检讨书
2014/01/23 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
思想品德评语大全
2014/12/31 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis