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聊天室技术
Oct 09 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
Symfony核心类概述
Mar 17 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Node.js简单入门前传
2017/08/21 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
python 文件和路径操作函数小结
2009/11/23 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python之文字转图片方法
2018/05/10 Python
python 不以科学计数法输出的方法
2018/07/16 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
python实现静态服务器
2019/09/05 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
python实现在线翻译
2020/06/18 Python
Django-imagekit的使用详解
2020/07/06 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
业务助理岗位职责
2013/11/18 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
消防应急演练方案
2014/02/12 职场文书