Yii源码阅读笔记(二十)
View中应用布局和缓存内容部分:
/** * Begins recording a block. * This method is a shortcut to beginning [[Block]] * 数据块开始的标记,该方法是开始[Block]的快捷方式 * 数据块可以在一个地方指定视图内容在另一个地方显示,通常和布局一起使用 * @param string $id the block ID. * @param boolean $renderInPlace whether to render the block content in place. * Defaults to false, meaning the captured block will not be displayed. * @return Block the Block widget instance */ public function beginBlock($id, $renderInPlace = false) { return Block::begin([ 'id' => $id,//数据块唯一标识 'renderInPlace' => $renderInPlace,//是否显示标记,默认false不显示 'view' => $this, ]); } /** * Ends recording a block. * 数据块结束的标记 */ public function endBlock() { Block::end(); } /** * Begins the rendering of content that is to be decorated by the specified view. * 开始用指定的view渲染内容,该方法用来实现嵌套布局,传入的第一个参数为布局文件的路径 * This method can be used to implement nested layout. For example, a layout can be embedded * in another layout file specified as '@app/views/layouts/base.php' like the following: * * ```php * <?php $this->beginContent('@app/views/layouts/base.php'); ?> * //...layout content here... * <?php $this->endContent(); ?> * ``` * * @param string $viewFile the view file that will be used to decorate the content enclosed by this widget. * This can be specified as either the view file path or path alias. * @param string $viewFile 布局文件 * @param array $params the variables (name => value) to be extracted and made available in the decorative view. * @param array $params 布局view文件的参数 * @return ContentDecorator the ContentDecorator widget instance * @see ContentDecorator */ public function beginContent($viewFile, $params = []) { return ContentDecorator::begin([ 'viewFile' => $viewFile, 'params' => $params, 'view' => $this, ]); } /** * Ends the rendering of content. * 结束渲染内容 */ public function endContent() { ContentDecorator::end(); } /** * Begins fragment caching. * 开始片段缓存 * This method will display cached content if it is available. * 该方法将展示可用的缓存内容,否则将开始缓存内容直到出现[endCache()]方法 * If not, it will start caching and would expect an [[endCache()]] * call to end the cache and save the content into cache. * A typical usage of fragment caching is as follows, * 使用缓存的典型例子如下: * ```php * if ($this->beginCache($id)) { * // ...generate content here * $this->endCache(); * } * ``` * * @param string $id a unique ID identifying the fragment to be cached. * @param array $properties initial property values for [[FragmentCache]] * @return boolean whether you should generate the content for caching. * False if the cached version is available. */ public function beginCache($id, $properties = []) { $properties['id'] = $id;//缓存唯一标识 $properties['view'] = $this; /* @var $cache FragmentCache */ $cache = FragmentCache::begin($properties); if ($cache->getCachedContent() !== false) {//如果从缓存中读取到了缓存的内容,则渲染内容并返回 false,因此将跳过内容生成逻辑,不再进行缓存 $this->endCache(); return false; } else { return true; } } /** * Ends fragment caching. * 结束片段缓存 */ public function endCache() { FragmentCache::end(); } /** * Marks the beginning of a page. * 页面开始标记--用于生成页面布局文件 */ public function beginPage() { ob_start(); ob_implicit_flush(false); $this->trigger(self::EVENT_BEGIN_PAGE); } /** * Marks the ending of a page. * 页面结束标记--用于生成页面布局文件 */ public function endPage() { $this->trigger(self::EVENT_END_PAGE); ob_end_flush(); }
Yii源码阅读笔记(二十)的更多相关文章
- Yii源码阅读笔记(十二)
Action类,控制器中方法的基类: namespace yii\base; use Yii; /** * Action is the base class for all controller ac ...
- Yii源码阅读笔记(十八)
View中的查找视图文件方法和渲染文件方法 /** * Finds the view file based on the given view name. * 通过view文件名查找view文件 * ...
- Yii源码阅读笔记(十五)
Model类,集中整个应用的数据和业务逻辑——验证 /** * Returns the attribute labels. * 返回属性的标签 * * Attribute labels are mai ...
- Yii源码阅读笔记(十六)
Model类,集中整个应用的数据和业务逻辑—— /** * Generates a user friendly attribute label based on the give attribute ...
- Yii源码阅读笔记(十四)
Model类,集中整个应用的数据和业务逻辑——场景.属性和标签: /** * Returns a list of scenarios and the corresponding active attr ...
- Yii源码阅读笔记(十)
控制器类,所有控制器的基类,用于调用模型和布局,输出到视图 namespace yii\base; use Yii; /** * Controller is the base class for cl ...
- Yii源码阅读笔记(十九)
View中渲染view视图文件的前置和后置方法,以及渲染动态内容的方法: /** * @return string|boolean the view file currently being rend ...
- Yii源码阅读笔记(一)
今天开始阅读yii2的源码,想深入了解一下yii框架的工作原理,同时学习一下优秀的编码规范和风格.在此记录一下阅读中的小心得. 每个框架都有一个入口文件,首先从入口文件开始,yii2的入口文件位于we ...
- werkzeug源码阅读笔记(二) 下
wsgi.py----第二部分 pop_path_info()函数 先测试一下这个函数的作用: >>> from werkzeug.wsgi import pop_path_info ...
- werkzeug源码阅读笔记(二) 上
因为第一部分是关于初始化的部分的,我就没有发布出来~ wsgi.py----第一部分 在分析这个模块之前, 需要了解一下WSGI, 大致了解了之后再继续~ get_current_url()函数 很明 ...
随机推荐
- LeetCode之Min Stack 实现最小栈
LeetCode相关的网上资源比较多,看到题目一定要自己做一遍,然后去学习参考其他的解法. 链接: https://oj.leetcode.com/problems/min-stack/ 题目描述: ...
- Java Hour 54 Spring Framework 1
总之,Srping Framework 很好很强大. 1 Spring Framework 介绍 省下你和transcation APIs, JMX APIs, JMS APIs 交流的功夫. 1.1 ...
- Hierachy Viewer 使用 monitor命令
使用 Hierachy Viewer 可视化调试工具 Hierachy Viewer 能很方便地在开发者设计,调试和调整界面时,快速定位问题,解决问题,提高开发效率. Hierarchy Viewer ...
- Sql server之路 (一)基础学习
查询 1.Select * from表名 2.Select 字段1,字段2,from表名 3.Select 字段1,字段2,...from表名 where 字段1 in('内容') 插入 1.inse ...
- hdu 5312 数学
- CPU的性能对比
笔记本CPU之前的性能对比 下面的分数都是根据PerformanceTest测试的出来的结果,现在的笔记本CPU有很多种,你在购买笔记本的时候只看到CPU的型号,而且现在的CPU型号太多而且命名方式也 ...
- ER-STUDIO 6.5工具使用帮助的中文翻译
转自于:http://yujingwang.blog.sohu.com/63362979.html 1 资料 ER-STUDIO的帮助(英文) 2 内容 2.1 ...
- 建模算法(六)——神经网络模型
(一)神经网络简介 主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦 (二)人工神经网络模型 一.基本单元的三个基本要素 1.一组连接(输 ...
- 编译fdk-aac for ios
Build all: build-fdk-aac.sh Build for some architectures: build-fdk-aac.sh armv7s x86_64 Build unive ...
- Codeforces Round #292 (Div. 2)
A. Drazil and Date 无算法,判断(s - (a + b)) % 2是否为零,若零,表示在s步内还能走向其他的地方并且回来 否则,都是No #include <cstdio> ...