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语法速查表
Dec 06 PHP
php批量删除数据
Jan 18 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP自定义错误处理的方法分析
Dec 19 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 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
windows xp下安装pear
2006/12/02 PHP
php GD绘制24小时柱状图
2008/06/28 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
销售人员个人求职信
2013/09/26 职场文书
大学生军训广播稿
2014/01/24 职场文书
学生会招新策划书
2014/02/14 职场文书
装修活动策划方案
2014/08/27 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
求职信如何撰写?
2019/05/22 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
Redis读写分离搭建的完整步骤
2021/09/14 Redis
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers