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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
php查询操作实现投票功能
May 09 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
thinkphp分页集成实例
Jul 24 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
PHP连接access数据库
2015/03/27 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
PHP7 windows支持
2021/03/09 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
详解JavaScript中的构造器Constructor模式
2016/01/14 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
python实现websocket的客户端压力测试
2019/06/25 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
什么是serialVersionUID
2016/03/04 面试题
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
新法人代表任命书
2014/06/06 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
浅析Python实现DFA算法
2021/06/26 Python
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫
Win2008系统搭建DHCP服务器
2022/06/25 Servers