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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
利用 window_onload 实现select默认选择
Oct 09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
php5.3 废弃函数小结
May 16 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
PHP中常用的魔术方法
Apr 28 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
php引用传递
Apr 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
wxPython事件驱动实例详解
2014/09/28 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
升国旗仪式主持词
2014/03/19 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
党员进社区活动总结
2015/05/07 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android