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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
ThinkPHP之getField详解
Jun 20 PHP
php实现比较全的数据库操作类
Jun 18 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
php实现Session存储到Redis
2015/11/11 PHP
php输出图像的方法实例分析
2017/02/16 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
投标授权委托书范文
2014/08/02 职场文书
委托书怎样写
2014/08/30 职场文书
超市店长竞聘书
2015/09/15 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL