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模拟SQL Server的两个日期处理函数
Oct 09 PHP
php生成扇形比例图实例
Nov 06 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
19个Android常用工具类汇总
Dec 30 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
一文搞懂PHP中的抽象类和接口
May 25 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学习笔记之面向对象
2014/11/08 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
javascript关于继承解析
2016/05/10 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
jquery实现左右轮播切换效果
2018/01/01 jQuery
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
基于Python的身份证号码自动生成程序
2014/08/15 Python
python实现自动更换ip的方法
2015/05/05 Python
简单理解Python中的装饰器
2015/07/31 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python变量的存储原理详解
2019/07/10 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
班组长岗位职责范本
2014/01/05 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
检查接待方案
2014/02/27 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
保险专业求职信
2014/07/07 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL