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 购物车实例(申精)
May 11 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
php数组保存文本与文本反编成数组实例
Nov 13 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP常用技巧汇总
Mar 04 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
PHP mysqli事务操作常用方法分析
Jul 22 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 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
jquery禁用右键示例
2014/04/28 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
jquery实现数字输入框
2017/02/22 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
webpack打包js的方法
2018/03/12 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
对python判断是否回文数的实例详解
2019/02/08 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
商场总经理岗位职责
2014/02/03 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang