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 相关文章推荐
在JavaScript中调用php程序
Mar 09 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
php正则修正符用法实例详解
Dec 29 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
PHP7 整型处理机制修改
Mar 09 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
详解Python的Django框架中的模版相关知识
2015/07/15 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
python多进程并发demo实例解析
2019/12/13 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Python logging模块handlers用法详解
2020/08/14 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
村长贪污检举信
2014/04/04 职场文书
相亲大会策划方案
2014/06/05 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
python实现简单区块链结构
2021/04/25 Python