thinkphp5怎么实现全站静态化啊?

来源:1-1 明确动态页面和静态页面

假的太真

2018-02-11 14:20

thinkphp5怎么实现全站静态化啊?老师能给个方法吗?在每个控制器的初始化方法里边进行吗??

写回答 关注

2回答

  • 闫俊成
    2019-07-01 09:58:22
    /**
     * 模板输出重写方法
     * @access protected
     * @param  boolean $isStatic 是否保存为静态文件
     * @param  string $template 模板文件名
     * @param  array  $vars     模板输出变量
     * @param  array  $replace  模板替换
     * @param  array  $config   模板参数
     * @return mixed
     */
    private function staticFetch($isStatic=false,$template = '', $vars = [], $replace = [], $config = [])
    {
        $HTML = $this->fetch($template, $vars, $replace, $config);//获得页面HTML代码
        if ($isStatic){//判断是否需要保存为静态页
            $thisModule=request()->module();//获取模块
            $thisController=request()->controller();//获取控制器
            $thisAction=request()->action();//获取方法
            $new_file = "{$thisModule}/{$thisController}";
            if(!file_exists($new_file)){
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0777,true);
            }
            $new_file.="/{$thisAction}.".config('default_return_type');
            file_put_contents($new_file,$HTML);//生成静态页
        }
        return $HTML;
    }


  • 美好明天
    2018-03-29 16:04:43

    thinkphp 里面有s方法,你看看,或许对你有帮助呢

PHP实现页面静态化

网站开发必备技能—页面静态化,帮助大家掌握一项加薪利器

55589 学习 · 115 问题

查看课程

相似问题