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 相关文章推荐
我的论坛源代码(八)
Oct 09 PHP
php+mysql 实现身份验证代码
Mar 24 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
php更新cookie内容的详细方法
Sep 30 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
解决php扩展安装不生效问题
Oct 25 PHP
如何用PHP websocket实现网页实时聊天
May 26 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
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
如何编写jquery插件
2017/03/29 jQuery
关于vue.js组件数据流的问题
2017/07/26 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
JS中的变量作用域(console版)
2020/07/18 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Python显示进度条的方法
2014/09/20 Python
简述Python中的进程、线程、协程
2016/03/18 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Python内置模块logging用法实例分析
2018/02/12 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
Python hashlib模块的使用示例
2020/10/09 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
应用心理学专业求职信
2014/08/04 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2015年市场部工作总结
2015/04/30 职场文书