yii2缓存】的更多相关文章

作者:白狼 出处:http://www.manks.top/yii2_cache.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 一个好的框架是肯定离不开缓存的使用,相反,一个没有缓存的框架也肯定不是一个好框架,好像是一个意思,不管了,我们先来看看yii2中是如何使用缓存的吧. 又是到我们第一步操作的时候了,我们先来配置组件. 方便起见,我们的缓存组件配置在common\config\main.php文件,先来简…
use yii\caching\Cache;$cache = Yii::$app->cache;$cache['var1'] = $value1;  // equivalent to: $cache->set('var1', $value1);$value2 = $cache['var2'];  // equivalent to: $value2 = $cache->get('var2');…
本文主要分三个部分,首先简单介绍csrf,接着对照源码重点分析一下yii框架的验证原理,最后针对页面缓存导致的token被缓存提出一种可行的方案.涉及的知识点会作为附录附于文末. 1.CSRF描述 CSRF全称为“Cross-Site Request Forgery”,是在用户合法的SESSION内发起的攻击.黑客通过在网页中嵌入Web恶意请求代码,并诱使受害者访问该页面,当页面被访问后,请求在受害者不知情的情况下以受害者的合法身份发起,并执行黑客所期待的动作.以下HTML代码提供了一个“删除产…
目录 如何使用yii2的缓存依赖特性 概述 页面缓存 缓存依赖 链式依赖 总结 如何使用yii2的缓存依赖特性 概述 缓存是Yii2的强大特性之一,合理使用缓存技术可以有效地减小服务器的访问压力.Yii2最基本的缓存包括数据缓存.片段缓存.页面缓存和HTTP缓存,这部分内容在官方文档中有更加详细的说明,这里不再赘述,如有需要可以参考Yii2官方开发文档中的缓存部分. 页面缓存 数据缓存与片段缓存都是针对网站中某一部分内容进行的缓存,这种缓存需要在代码部分进行显示声明,修改起来比较麻烦.相对的页面…
Yii2开启表结构缓存,因为当运用模型(model)时,AR的一些公共属性都会从DB中获取,这样会导致服务器负担一些额外的资源开销,实际上对于成品来说,服务器这些开始销是多余的,故应该阻止这种默认行为,把表结构进行缓存起来,提高效率.Yii2的缓存值得深入研究学习. 开启数据库表结构的schema缓存的方法: //配置文件的方式 'db'=>array( ... 'enableSchemaCache' => true, 'schemaCacheDuration' => 86400, //…
对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍如下: 1.在需要缓存依赖发布的数据表新增一个update_time字段,每次添加.修改记录后都会相应改变update_time的值: 2.保证需要缓存依赖发布的数据表每次保存(包括更新操作)都能更新update_time的值: // 所有表model继承的基础BaseModel.php /** *…
为了那些因为标题点进来的小伙伴,我直接把问题解决方案写在开头: 问题描述, $cache->add($key,'value',1800);这样设置了值后,后面无论怎么取这个$key,取出来的结果都是false, 使用$cache->exit ,也显示不存在 原因:因为我在设置$key的时候,使用的$key = time();经过测试yii2的缓存,是不能使用纯数字的键,最后使用了$key = 'name'.$key:就好了 数据缓存 数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存…
首先配置一下缓存,自己选择是用文件缓存还是数据库缓存等. 'cache' => [ 'class' => 'yii\caching\FileCache', ], 然后就可以通过 Yii::$app->cache->set() 和 Yii::$app->cache->get() 设置.获取缓存内容了.下面是一个带缓存依赖的实例: //表达式依赖 $dp = new ExpressionDependency([ 'expression' => 'count(Yii::…
1.控制器中CacheDemoController.php 1 <?php 2 /** 3 * Created by PhpStorm. 4 * User: liangzi 5 * Date: 2016/11/25 6 * Time: 8:38 7 */ 8 namespace app\controllers; 9 10 use yii\web\Controller; 11 12 class CacheDemoController extends Controller 13 { 14 /* pu…
1.控制器中CacheDemoController.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/06/29 * Time: 8:38 */ namespace app\controllers; use yii\web\Controller; class CacheDemoController extends Controller { /* public function behaviors() { return…
Yii中的缓存依赖,简单来说就是将缓存和另外一个东西绑定在一起,如果另外一个东西发生变化,那么缓存也将发生变化.有点儿类似于JS中的触发事件(但是也不那么像),缓存的变动是依赖的东西所导致的. 依赖可以是文件.数据库.甚至是一些表达式.功能十分强大. Yii提供了5中依赖方法,我们这里介绍其中的3种常用依赖. 1.文件依赖 顾名思义就是将缓存和文件绑定在一起.如果文件的内容发生变化,那么缓存将会收到影响.(Yii判断的标准是文件的最后修改时间) 我们通过实例来演示一下这个过程. 1.首先获取缓存…
1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=>'yii\caching\FileDependency', 'fileName'=>'xxx.txt' ]; 设置是否开启缓存 $enable=false/ture ?> <?php ****缓存的内容 内容将被缓存,再次访问时.直接读取缓存***** <?php $this-&…
public function actionSss(){ /* * 获取到缓存 * 这里是获取的是根目录下 的common/main.php中的缓存类组件 * */ $cache=\Yii::$app->cache; //往缓存中写数据--第三个参数可以设置有效时间默认是秒 $cache->add('key1','hello ,world1'); $cache->add('key3','hello ,world2'); //修改数据 // $cache->set('key1','8…
开启 Schema 缓存 Schema 缓存是一个特殊的缓存功能,每当你使用活动记录时应该要开启这个缓存功能.如你所知, 活动记录能智能检测数据库对象的集合(例如列名.列类型.约束)而不需要手动地描述它们.活动记录是通过执行额外的SQL查询来获得该信息. 通过启用 Schema 缓存,检索到的数据库对象的集合将被保存在缓存中并在将来的请求中重用. 要开启Schema缓存,需要配置一个cache应用组件来储存Schema信息,并在配置中设置 yii\db\Connection::enableSch…
1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=>'yii\caching\FileDependency', 'fileName'=>'xxx.txt' ]; 设置是否开启缓存 $enable=false/ture ?> <?php ****缓存的内容 内容将被缓存,再次访问时.直接读取缓存***** <?php $this-&…
页面缓存: 如果整个页面都不会发生改变,就可以使用页面缓存缓存整个页面. public function behaviors(){            //此方法[也叫行为]会提前控制器内其他方法执行.          return [              'class'=>'yii\filters\PageCache',     //声明使用页面缓存              'duration'=>1000,                     //此键如果声明,就是有失效时…
文件缓存: 在 frontend/config/main.php/components数组下添加: 'cache'=>[      'class'=>'yii\caching\FileCache', ], 任意控制器方法内://获取缓存组件 $cache=\Yii::$app->cache;//添加缓存数据[名.值.时间(不设置就一直存在)](重复添加不覆盖,值为第一次添加的值) //$cache->add("kes",5588855);//修改缓存数据[名.值…
片段缓存指的是缓存页面内容中的某个片段.默认缓存 60秒. return $this->renderPartial("ca");                         //控制器就简单的调一个页面即可. 视图 ca.php 内(方式一 缓存开关):<php $enabled=false;          //此值为 false 将关闭缓存,内容部分改变则会立马改变.相应,true就是开启缓存. ?> <?php if($this->beginC…
控制器层 <?php namespace frontend\controllers; use Yii; use yii\web\Controller; //use frontend\models\Zhan; use yii\data\Pagination; use SphinxClient; use yii\db\Query; use yii\widgets\LinkPager; use yii\caching\MemCache; class SphinxController extends C…
Yii2.0的view层提供了若干重要的功能:assets资源管理,widgets小组件,layouts布局... 下面将通过对Yii2.0代码直接进行分析,看一下上述功能都是如何实现的,当然细枝末节的东西不会过多赘述,如果你对此感兴趣又懒得自己去翻代码和文档,那么这篇博客可以快速的给你一个系统的认识. 基础渲染 这一节要谈的是view层是如何完成基础工作的,也就是根据用户传入的参数渲染出一个html页面. 用法 我们在controller里调用$this->render方法,第一个参数是要套用…
我前几天用composer安装 一直没成功  我就用归档的方法安装了  所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功能 ,包括MVC,DAO/ActiveRecord,I18N/L10N,缓存,,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间.2.0.0版本发布于2014年10月12日.下面介绍一下Yii2.0 basic模板和高级(advanced)模板的安装. 要点: 打开dos 操作命令…
在上一篇博文中,笔者讲述了yii2应用用户登陆的基本方法,但是这些方法到底是怎样实现登陆的呢?底层的原理到底是什么?在这篇博文笔者将从Yii的源码角度分析登陆的基本原理以及cookie自动登陆的原理,通过源码的分析,各位对Yii的理解也会更上一层楼. 一.第一次正常登陆 1.在LoginForm.PHP中,我们曾经调用了这个方法: Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0)…
一 CSRF 概念 CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XS…
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order      (id  order_name   customer_id   book_id) 图书表           (id  book_name    author_id) 作者表           (id  author_name) 模型定义 下面是这4个个模型的定义,只写出其中的关联 Customer  class Custom…
php比较类文件:yiisoft\yii2\validators\CompareValidator.php JS比较类文件: yiisoft\yii2\assets\yii.validation.js 原来的比较 只包含integer 和 string 两种情况 通过添加类型 来增加时间的比较 前台用的是js时间选择插件 时间格式为 YYYY-hh-dd hh:ii:ss 之类的 PHP中用的是转换为时间戳比较时间   strtotime() JS中 用的是 new Date() 比较时间(一定…
vendor\overtrue\wechat\src\Foundation\Application.php registerBase 方法 在初始化属性时 $this['cache'] = function () { // return new FilesystemCache(sys_get_temp_dir()); // win 下获取的是 c:\window 没有权限 位置太敏感 加权限什么的就算了吧 return new FilesystemCache(\Yii::$app->cache-…
之前写过一篇Yii2框架RESTful API教程(一) - 快速入门,今天接着来探究一下Yii2 RESTful的格式化响应,授权认证和速率限制三个部分 一.目录结构 先列出需要改动的文件.目录如下: web ├─ common │ └─ models │ └ User.php └─ frontend ├─ config │ └ main.php └─ controllers └ BookController.php 二.格式化响应 Yii2 RESTful支持JSON和XML格式,如果想指定…
表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer   (id  customer_name) 订单表Order          (id  order_name       customer_id   book_id) 图书表                    (id  book_name       author_id) 作者表                    (id  author_name) 模型定义 下面是这4个个模型的定义,只写出其中的关联 Custom…