自主研发一套PHP前端开发框架(23)

28 篇文章 0 订阅
22 篇文章 0 订阅

知识点缓冲区

1.打开输出缓冲区ob_start()
2.当缓冲区激活时,所有来自PHP程序的非文件头信息
均不会发送,而是保存在内部缓冲区
3.期间可以使用ob_get_contents来获取缓冲区内容(
你可以任意修改)
4.使用ob_clean()来清除缓冲区内容。
5.echo 你修改过的内容。

_Master.inc代码

<?php 
  //所有controller的父类 抽象类 
  abstract class _Master{
     var $_view='index';//模板名称
     var $_vars = array();
     var $_cachetime=0;//缓存时间
     function setView($viewName){
         $this->_view = $viewName;
     }
     function getView(){
        return LKPHP_PATH.'/MVC/View/'.LKPHP_VIEWPATH.'/'.$this->_view.'.'.LKPHP_EXTENSION;
     }
     function setVar($varName,$varValue){
         //设置变量
        $this->_vars[$varName] = $varValue;
     }
     function hasVarCache(){
        if(the_cache($this->_view)){
            return true;
        }
        return false;
     }
     function run(){

        //解包变量
        if($this->_cachetime > 0){
            $getVars_cache = the_cache($this->_view);
            if($getVars_cache){
                echo '<b>这是从memcache中获取的数据</b><br/>';
                extract($getVars_cache);
            }else{
                //同时要设置缓存
                set_cache($this->_view,$this->_vars,0,$this->_cachetime);
                extract($this->_vars);
            }
        }else{
            extract($this->_vars);
        }
        extract($this->_vars);
        if(LKPHP_IS_OPEN_FILE_CACHE){
            //这里我们要讲写入缓冲区
            $tpl='';
            ob_start();
            //加载头部模板
            include(LKPHP_PATH.'/MVC/View/'.LKPHP_VIEWPATH.'/'.LKPHP_VIEWHEADER.'.'.LKPHP_EXTENSION);
            include($this->getView());//加载模板body
            include(LKPHP_PATH.'/MVC/View/'.LKPHP_VIEWPATH.'/'.LKPHP_VIEWFOOTER.'.'.LKPHP_EXTENSION);//尾部
            $tpl = ob_get_contents();

            ob_clean();
            $file_name = md5($_SERVER['REQUEST_URI']);
            $cache_file='Cache/'.$file_name;
            if(file_exists($cache_file)){
                echo  file_get_contents($cache_file);
            }else{
                file_put_contents($cache_file,$tpl);
                echo $tpl;
            }
        }else{
            //加载头部模板
            include(LKPHP_PATH.'/MVC/View/'.LKPHP_VIEWPATH.'/'.LKPHP_VIEWHEADER.'.'.LKPHP_EXTENSION);
            include($this->getView());//加载模板body
            include(LKPHP_PATH.'/MVC/View/'.LKPHP_VIEWPATH.'/'.LKPHP_VIEWFOOTER.'.'.LKPHP_EXTENSION);//尾部
        }

     }
     //魔术方法
    function __get($p){
        $c=load_class($p);
        return $c;
    }
  }
 ?>

lkphp.conf

<?php
  define('LKPHP_PATH', '');
  define('LKPHP_EXTENSION', 'php');
  define('LKPHP_VIEWPATH', 'default');
  define('LKPHP_VIEWHEADER', 'header');
  define('LKPHP_VIEWFOOTER', 'footer');
  define('LKPHP_FORBIDDEN_TYPE',"'header','footer','functions','install','_Master'");//禁止访问的type类
  define('LKPHP_UNSAFEWORDS', 'fuck,日,中国共产党,国务院,毛泽东');
  define('LKPHP_USERCOOKIE','userlogin');//用户登录cookie保存的key
  define('LKPHP_DESKEY','123456789');//加密的Key
  define('LKPHP_MEMCACHE_IP','127.0.0.1');//memcache ip
  define('LKPHP_MEMCACHE_PORT','11211');//port
  define('LKPHP_IS_OPEN_FILE_CACHE',false);//是否开启静态缓存
?>

这里新增了一个控制参数 LKPHP_IS_OPEN_FILE_CACHE 这个控制参数可以控制是否开启文件缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值