Yii2中添加全局函数的方法分析


Posted in PHP onMay 04, 2017

本文实例讲述了Yii2中添加全局函数的方法。分享给大家供大家参考,具体如下:

方法一

这种方法就是直接在入口文件web/index.php里面写函数,示例代码如下:

// something code ……
// 全局函数
function pr($var)
{
  $template = php_sapi_name() !== 'cli' ? '<pre>%s</pre>' : "\n%s\n";
  printf($template, print_r($var, true));
  exit;
}
(new yii\web\Application($config))->run();

这个方法虽然可以实现,但是本人不推荐,因为改了框架本身的代码,而且如果全局函数多了的话,也不好管理。

方法二(推荐)

这种方法主要是利用 composer 来实现,在 composer.json 文件里面添加如下代码:

"autoload": {
  "files": [
   "common/components/GlobalFunctions.php"
  ]
},

添加完之后记得用终端在项目根目录下执行 composer update 命令

然后我们的全局函数都可以写在 GlobalFunctions.php 文件里面,这个方法实现的话 IED 是会用代码提示的。

GetYii 有用到第二种方法,具体可以查看源码。

我更喜欢在已有命名空间对应的目录结构下加 helpers

有时候调用 helpers 显得方法太长了。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP查询域名状态whois的类
Nov 25 PHP
在php MYSQL中插入当前时间
Apr 06 PHP
PHP 工厂模式使用方法
May 18 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
基于php编程规范(详解)
Aug 17 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 PHP
Yii2表单事件之Ajax提交实现方法
May 04 #PHP
PHP经典实用正则表达式小结
May 04 #PHP
PHP实现的简单异常处理类示例
May 04 #PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 #PHP
PHP 无限级分类
May 04 #PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 #PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 #PHP
You might like
php数据库连接
2006/10/09 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python分析nignx访问日志脚本分享
2015/02/26 Python
python中字符串内置函数的用法总结
2018/09/13 Python
python将list转为matrix的方法
2018/12/12 Python
超实用的 30 段 Python 案例
2019/10/10 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
关于幼儿的自我评价
2013/12/18 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
亲子读书活动方案
2014/02/22 职场文书
消防宣传语大全
2015/07/13 职场文书