方法一
直接在入口文件 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直接显示文字;否则print
if (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 dump
或dump-autoload
或 dumpautoload
命令就可以了。
总结
其实框架中添加全局函数的方法都一样,或者是在入口脚本中添加,或者利用 composer 来实现,当然我们尽可能选择后者,原因你懂的。