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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
php小偷相关截取函数备忘
Nov 28 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
Javascript 继承实现例子
2009/08/12 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
详解vue-cli3使用
2018/08/14 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
node使用request请求的方法
2019/12/20 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
获奖感言范文
2015/07/31 职场文书
导游词之杭州西湖
2019/09/19 职场文书
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers