方法一

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

// 全局函数
if (!function_exists('pp')) {//传递数据以易于阅读的样式格式化后输出function pp($data=''){// 定义样式$str='<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;background-color: #F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';// 如果是boolean或者null直接显示文字;否则printif (is_bool($data)) {$show_data=$data ? 'true' : 'false';}elseif (is_null($data)) {$show_data='null';}else{$show_data=print_r($data,true);}$str.=$show_data;$str.='</pre>';exit($str);}
}(new yii\web\Application($config))->run();复制代码

也可以把全局函数写到一个文件里面,比如说 common\helpers\GlobalFunctions.php,然后在 web/index.php 里面这样引用此文件:

require __DIR__ . '/../../common/helpers/GlobalFunctions.php';
require __DIR__ . '/../config/bootstrap.php';(new yii\web\Application($config))->run();复制代码

方法二(推荐)

这种方法主要是利用 composer 来实现,先把全局函数都可以写在 /common/helpers/GlobalFunctions.php 文件里面,然后在 composer.json 文件里面添加如下代码:

"autoload": {"files": ["common/helpers/GlobalFunctions.php"]
},复制代码

添加完之后用终端在项目根目录下执行 composer dumpdump-autoloaddumpautoload 命令就可以了。

总结

其实框架中添加全局函数的方法都一样,或者是在入口脚本中添加,或者利用 composer 来实现,当然我们尽可能选择后者,原因你懂的。

转载于:https://juejin.im/post/5aa7705351882555627cf389

Yii2 中添加全局函数相关推荐

  1. UE | Shader | 在UE中添加全局Shader

    UE | Shader | 在UE中添加全局Shader .usf(Unreal Shader Files) 和.usf的使用 .usf文件编写 .usf文件绑定.cpp和.h文件 添加控制台变量 D ...

  2. python apply_async函数_进程池未执行apply_async中添加的函数就直接结束了

    代码没有执行apply_async中添加的函数就直接结束了 from bs4 import BeautifulSoup import random import requests import pym ...

  3. 在C++工程中设置全局函数

    在头文件中对该函数进行全局函数的声明: extern void Test(); 在cpp文件中进行函数的定义: void Test() {MessageBox(NULL,L"调用了C++的全 ...

  4. laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式

    最近,在使用Laravel写东西,因为框架本身的设计理念的不同,刚从ThinPHP3切换到Laravel5,感觉还是很怪的,各种不习惯,但是一旦写过一些代码,发现Laravel真的非常好用.我一直觉得 ...

  5. c语言的结构体能存放函数吗,在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  6. android java函数_java – 在android中创建全局函数

    像这样创建类并在此处添加您的函数: package com.mytest; import android.content.Context; import android.net.Connectivit ...

  7. 添加全局函数$.extend和对象方法$.fn

    ## $(function () { $.fn.shadow = function (opts) {return this.each(function () {var defaults = { /*指 ...

  8. nodejs中的全局函数setTimeout/clearTimeout,setInterval/clearInterval,unref/ref

    /** global的函数和方法*1.setTimeout.clearTimeout 多长时间后执行函数(只执行一次)*2.setInterval.clearInterval 每隔多少秒执行一次的计时 ...

  9. php自定义函数全局声明,【phpcms-v9】phpcms-v9中自定义全局函数文件:extention.func.php...

    /** * extention.func.php 用户自定义函数库 * * @copyright(C) 2005-2010 PHPCMS * @licensehttp://www.phpcms.cn/ ...

最新文章

  1. android环境安装之android4.2安装(转)
  2. 数据中心小母线与列头柜供配电系统的综合比较
  3. vue2.0搭建vue手脚架(vue-cli)
  4. 美团关联公司公开“无人车及无人配送系统”相关专利
  5. 面试官问你final、finally、finalize的区别
  6. python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
  7. IEC 60529防护等级的定义
  8. TypeError: empty() received an invalid combination of arguments
  9. mysql slave_pending_jobs_size_max_3分钟解决MySQL 1864 主从错误
  10. Similarity Reasoning and Filtration for Image-Text Matching
  11. 敏捷开发绩效管理之四:为团队设立外部绩效目标(目标管理,外向型绩效)
  12. 移动通讯技术的发展历史
  13. 微信小程序code和其他内容的获取
  14. 深度学习模型处理多标签(multi_label)分类任务——keras实战
  15. HTML学习6~29(HTML语法规范)
  16. 杀毒软件的Linux版,Linux杀毒软件免费版下载
  17. ISO三体系认证多少钱?
  18. 周期信号的傅里叶级数分解(以方波为例,含MATLAB代码)
  19. linux系统安装、使用中的问题和clock_t计时问题
  20. 再战 k8s(十八):RKE

热门文章

  1. 汇编语言——用DOSBox的debug查看CPU和内存 用机器指令和汇编指令编程
  2. 将MP4转换为GIF
  3. 深入浅出Python元编程,不仅仅是Metaclass
  4. 配置ArchLinux系统
  5. python将英文翻译为中文_Python使用百度翻译开发平台实现英文翻译为中文功能示例...
  6. 上海市高校大学生程序设计邀请赛 C:小花梨判连通
  7. 3.26 haas506 2.0开发教程-example- 简易相机-串口控制ESP32-CAM OV2640拍照
  8. 利用留数定理计算实积分
  9. 韩国媒体:中国手机的崛起,都是依靠“性价比”?
  10. CentOS7-0-创建本地yum源和局域网yum源