TinkPHP6-tp6实现全站静态化方法

admin 2024-07-13 670 阅读 0评论

基类中的生成前与生成后的方法


class
Common extends BaseController
{
   //静态模板生成目录
   protected $staticHtmlDir = "";
   //静态文件
   protected $staticHtmlFile = "";

   //判断是否存在静态
   public function beforeBuild($param = []) {
       //生成静态
       $this->staticHtmlDir = "html".DS.$this->request->controller().DS;
       //参数md5
       $param = md5(json_encode($param));
       $this->staticHtmlFile = $this->staticHtmlDir .$this->request->action() . '_'  . $param .'.html';

       //目录不存在,则创建
       if(!file_exists($this->staticHtmlDir)){
           mkdir($this->staticHtmlDir);
       }

       //静态文件存在,并且没有过期
       if(file_exists($this->staticHtmlFile) && filectime($this->staticHtmlFile)>=time()-60*60*24*5) {
           header("Location:/" . $this->staticHtmlFile);
           exit();
       }

   }

   //开始生成静态文件
   public function afterBuild($html) {
       if(!empty($this->staticHtmlFile) && !empty($html)) {
           if(file_exists($this->staticHtmlFile)) {
               \unlink($this->staticHtmlFile);
           }
           if(file_put_contents($this->staticHtmlFile,$html)) {
               header("Location:/" . $this->staticHtmlFile);
               exit();
           }
       }
   }
}

控制器中的使用


public function
getList($id = '')
{
   //判断静态界面是否存在
   $this->beforeBuild(array($id));

   // do someing
   $name = "测试静态化";
   $html = View::fetch('/get_list',['name'=>$name]);

   //生成静态界面
   $this->afterBuild($html);

}


喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 670人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表