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 加密与解密的斗争
Apr 17 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
PHP实现的简单日历类
Nov 29 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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 深入理解strtotime函数的使用详解
2013/05/23 PHP
php cli配置文件问题分析
2015/10/15 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
公司股权转让协议书
2014/04/12 职场文书
社区文化建设方案
2014/05/02 职场文书
小学节能减排倡议书
2014/05/15 职场文书
公司离职证明样本
2014/09/13 职场文书
体育个人工作总结
2015/02/09 职场文书
任命书格式模板
2015/09/22 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
简历自我评价范文
2019/04/24 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL