Karp 的技术博客

仅支持 向模板传递变量

    /**
     * 视图 
     * @param array $params 模板变量
     * @param string $method 视图模板
     * @return mixed|string
     */
    public static function view(array $params = [], $method = ''): string
    {
        // 利用堆栈追踪回溯
        $array = debug_backtrace();
        $file = $array[0]['file'] ?? '';
        $method = $method ?: ($array[1]['function'] ?? '');

        $fileDir = rtrim($file, '.php');
        $viewFile = str_replace('Controller', 'View', $fileDir . DS . $method) . '.phtml';
        if (!file_exists($viewFile)) {
            return "<h1 > {$method} 404 </h1>";
        }

        // 捕获 模板 html 赋值到变量
        ob_start();
        include $viewFile;
        $html = ob_get_contents();
        ob_end_clean();

        if ($params) {

            // 批量赋值
            foreach ($params as $k => $v) $$k = $v;

            // 替换变量
            preg_match_all('/{(.*)}/i', $html, $list);
            foreach ($list[1] as $var) {
                $tmp = $$var ?? '';
                $html = str_replace('{' . $var . '}', $tmp, $html);
            }
        }

        return $html;
    }

php swoole

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月18日 02:13
3

目录

来自 《一个简陋的 PHP View 适用于Swoole》
774 文章数
0 评论量
9 分类数
779 页面数
已在风雨中度过 9年277天3小时33分