Yii2 中添加全局函数

作者: guanguans | 来源:发表于2018-01-30 11:33 被阅读48次

    方法一

    直接在入口文件 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 来实现,当然我们尽可能选择后者,原因你懂的。

    相关文章

      网友评论

        本文标题:Yii2 中添加全局函数

        本文链接:https://www.haomeiwen.com/subject/icnqzxtx.html