src/Template.php
static public function display(string $view = null, array $params = []): string
    {
        // 是否是被嵌套,默认是否
        static $nested = false;

        // 如果有模板变量,解开
        if ($params and count($params)) {
            extract($params);
        }

        // 如果是被嵌套,直接包含就是了
        if ($nested) {
            include(self::getTpl($view));
            return '';
        }

        // 当前是被嵌套
        $nested = 1;

        // 引入模版文件
        include(self::getTpl($view));

        // 嵌套结束了
        $nested = 0;

        return '';
    }
static public function display(string $view = null, array $params = []): string
    {
        // 是否是被嵌套,默认是否
        static $nested = false;

        // 如果有模板变量,解开
        if ($params and count($params)) {
            extract($params);
        }

        // 如果是被嵌套,直接包含就是了
        if ($nested) {
            include(self::getTpl($view));
            return '';
        }

        // 当前是被嵌套
        $nested = 1;

        // 引入模版文件
        include(self::getTpl($view));

        // 嵌套结束了
        $nested = 0;

        return '';
    }
显示视图,如果需要,智能编译

@param string $view 视图名称
格式一: <c>/<a> 这将匹配 当前模块的 view/<c>/<a>.tpl 或
/module/common/view/...
格式二: <a> 使用当前控制器名称,并按格式一处理
格式三: null 使用当前动作名称,并按格式二处理
@param array $params 参数数组,数组中的键值对将被释放为变量
@return string
@throws TemplateException