为了账号安全,请及时绑定邮箱和手机立即绑定

Yii框架不得不说的故事—高效篇(2)

withy PHP开发工程师
难度中级
时长 2小时27分
学习人数
综合评分9.80
77人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.6 逻辑清晰
  • DB依赖关系

    查看全部
  • 缓存文件依赖和表达式依赖,当依赖的结果比如文件修改时间改变或者表达式结果改变时缓存失效。

    查看全部
  • 缓存有效期设置

    查看全部
  • 数据缓存方法

    查看全部
  • 调用组件时会调用__get()方法,然后再返回调用的组件,实现组件的延迟加载

    查看全部
  • 类的映射表机制

    查看全部
  • spl_autoload_register([$classname,$functionname])注册自动加载函数,实现类的延迟加载

    查看全部
    0 采集 收起 来源:类的延迟加载

    2019-01-04

  • 缓存文件依赖以及表达式依赖

    查看全部
  • yii框架通过PHP __get方法来实现组件的延迟加载。而不需要一开始就加载组件而是调用了该类后再加载
    查看全部
  • __get方法
    查看全部
  • 表里边的内容是字段的备注


    查看全部
  • <?php
    namespace app\controllers;
    use yii\web\Controller;
    
    class HelloController extends Controller{
    
    	public function behaviors(){ 
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				// 下面的代码
    				'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据
    					return filemtime('hw.txt');
    				},
    				'etagSeed'=>function(){ // etag
    					$fp = fopen('hw.txt', 'r');
    					$title = fgets($fp);
    					fclose($fp);
    					return $title;
    				}
    			]
    		];
    	}
    
    	public function actionIndex(){
    		return $this->renderPartial('index');
    	}
    }


    查看全部
    0 采集 收起 来源:http缓存实例

    2018-04-14

  • HelloController.php文件

    <?php
    namespace app\controllers;
    use yii\web\Controller;
    
    class HelloController extends Controller{
    
    	public function behaviors(){ 
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				// 下面的代码
    				'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据
    					return 1432817567;
    				},
    				'etagSeed'=>function(){ // etag
    					return 'etagseed21';
    				}
    			]
    		];
    	}
    
    	public function actionIndex(){
    		return $this->renderPartial('index');
    	}
    }


    查看全部
    0 采集 收起 来源:http缓存之etag

    2018-04-14

  • 问题2:服务器是怎样对比浏览器请求数据服务器数据的区别呢?对比的依据是什么呢?

    通过如下代码实现(HelloController.php文件中部分代码如下)

    public function behaviors(){ 
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				// 下面的代码↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    				'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据
    					return 1432817564;
    				}
    			]
    		];
    	}

    HelloController.php文件代码

    <?php
    namespace app\controllers;
    use yii\web\Controller;
    
    class HelloController extends Controller{
    
    	public function behaviors(){ 
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				// 下面的代码↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    				'lastModified'=>function(){ // 通过这生成的时间戳,来比对数据
    					return 1432817564;
    				}
    			]
    		];
    	}
    
    	public function actionIndex(){
    		return $this->renderPartial('index');
    	}
    }


    查看全部
  • 问题1:服务器怎么告诉浏览器缓存服务器发送的数据呢?

    服务器向浏览器发送数据,会在数据头部添加Cache-Control字段,告诉浏览器缓存数据;服务器是通过如下代码告诉浏览器缓存服务器发送的数据(HelloController.php文件中部分代码如下)

    public function behaviors(){ // 在调用其他action方法前调用behaviors方法
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				'lastModified'=>function(){
    					return 1432817564;
    				}
    			]
    		];
    	}

    HelloController.php文件代码

    <?php
    namespace app\controllers;
    use yii\web\Controller;
    
    class HelloController extends Controller{
    
    	public function behaviors(){ // 在调用其他action方法前调用behaviors方法
    
    		return [
    			[
    				'class'=>'yii\filters\HttpCache', // 告诉浏览器,缓存服务器发送的数据
    				'lastModified'=>function(){
    					return 1432817564;
    				}
    			]
    		];
    	}
    
    	public function actionIndex(){
    		echo '海草舞';
    	}
    }


    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程之前,建议先了解一下知识,会更有助于理解和掌握本门课程 1、掌握PHP基本的语言语法 2、对MVC开发方式有一定的了解
老师告诉你能学到什么?
1、YII的延迟加载 2、YII的多级缓存 3、GII工具的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!