Yii2 中添加全局函数

方法一

直接在入口文件 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 dumpdump-autoloaddumpautoload 命令就可以了。

总结

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

猜你喜欢

转载自blog.csdn.net/wuxianbing2012/article/details/88626311
今日推荐