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 相关文章推荐
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP XML备份Mysql数据库
May 27 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
php数组添加元素方法小结
Dec 20 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
详解php协程知识点
Sep 21 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 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
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
JavaScript闭包详解
2015/02/02 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
对Python中内置异常层次结构详解
2018/10/18 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
2014年大班元旦活动方案
2014/02/26 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
小学生家长寄语
2014/04/02 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
男生贾里读书笔记
2015/06/30 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python