`
zhouwei064
  • 浏览: 27272 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Yii技术框架学习之路(二)

    博客分类:
  • PHP
阅读更多

视图 

视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中。

视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。视图的名称与其视图脚本名称是一样的.例如:视图edit 的名称出自一个名为 edit.php 的脚本文件.要渲染时如,需通过传递视图的名称调用 CController::render()。这个方法将在 protected/views/ControllerID 目录下寻找对应的视图文件.

在视图脚本内部,我们可以通过 $this 来访问控制器实例.我们可以在视图里以 $this->propertyName 的方式 拉取 控制器的任何属性.

我们也可以用以下 推送 的方式传递数据到视图里:

$this->render('edit', array(
    'var1'=>$value1,
    'var2'=>$value2,
));

在以上的方式中, render() 方法将提取数组的第二个参数到变量里.其产生的结果是,在视图脚本里,我们可以直接访问变量 $var1 和 $var2.

1. 布局 

布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.

......header here......
<?php echo $content; ?>
......footer here......

其中的 $content 则储存了内容视图的渲染结果.

当使用 render() 时,布局被隐式应用.视图脚本 protected/views/layouts/main.php 是默认的布局文件.这可以通过改变 CWebApplication::layout 或者 CWebApplication::layout 进行自定义。要渲染一个不带布局的视图,则需调用 renderPartial() 。

2. 小物件 

小物件是 CWidget 或其子类的实例.它是一个主要用于表现数据的组件.小物件通常内嵌于一个视图来产生一些复杂而独立的用户界面.例如,一个日历小物件可用于渲染一个复杂的日历界面.小物件使用户界面更加可复用.

我们可以按如下视图脚本来使用一个小物件:

<?php $this->beginWidget('path.to.WidgetClass'); ?>
...可能会由小物件获取的内容主体...
<?php $this->endWidget(); ?>

或者

<?php $this->widget('path.to.WidgetClass'); ?>

后者用于不需要任何 body 内容的组件.

小物件可通过配置来定制它的表现.这是通过调用 CBaseController::beginWidget 或 CBaseController::widget 设置其初始化属性值来完成的.例如,当使用 CMaskedTextField 小物件时,我们想指定被使用的 mask (可理解为一种输出格式,译者注).我们通过传递一个携带这些属性初始化值的数组来实现.这里的数组的键是属性的名称,而数组的值则是小物件属性所对应的值.正如以下所示 :

<?php
$this->widget('CMaskedTextField',array(
    'mask'=>'99/99/9999'
));
?>

继承 CWidget 并覆盖其init() 和 run() 方法,可以定义一个新的小物件:

class MyWidget extends CWidget
{
    public function init()
    {
        // 此方法会被 CController::beginWidget() 调用
    }
 
    public function run()
    {
        // 此方法会被 CController::endWidget() 调用
    }
}

小物件可以像一个控制器一样拥有它自己的视图.默认情况下,小物件的视图文件位于包含了小物件类文件目录的views 子目录之下.这些视图可以通过调用 CWidget::render() 渲染,这一点和控制器很相似.唯一不同的是,小物件的视图没有布局文件支持。另外,小物件视图中的$this指向小物件实例而不是控制器实例。

3. 系统视图 

系统视图的渲染通常用于展示 Yii 的错误和日志信息.例如,当用户请求来自一个不存在的控制器或动作时,Yii 会抛出一个异常来解释这个错误. 这时,Yii 就会使用一个特殊的系统视图来显示此错误.

系统视图的命名遵从了一些规则.比如像 errorXXX 这样的名称就是用于渲染展示错误号 XXX 的 CHttpException的视图.例如,如果 CHttpException 抛出一个 404错误,那么 error404 就会被显示.

在 framework/views 下, Yii 提供了一系列默认的系统视图. 他们可以通过在 protected/views/system 下创建同名视图文件进行自定义.

0
0
分享到:
评论

相关推荐

    yii框架中文手册教程

    1. 性能优越:Yii框架采用了各种优化技术,保证了Web应用的高性能,尤其在处理大量数据和高流量的Web应用时表现优异。 2. 组件化设计:Yii框架采用基于组件的设计模式,开发者可以通过复用组件快速组装出复杂的Web...

    《Yii框架深度剖析》配套代码

    《Yii框架深度剖析》配套代码 本书不是简单地介绍如何使用 Yii 框架,而是站在框架设计的高度,从源代码级别深 度剖析。... 充分了解了这部分知识后,读者对 Yii 框架也有了初步认识,然后正式进入 Yii 框架的学习。

    php最新框架YII框架

    1. 高性能:Yii通过使用缓存机制、优化的查询构建器和预编译的模板引擎等技术,提供了比其他PHP框架更快的运行速度。 2. MVC设计模式:遵循MVC模式,使得模型、视图和控制器之间职责分明,有利于提高代码的组织性...

    yii框架中文文档、yii中文手册教程

    Yii框架以性能优化为设计核心,提供了一系列现代化的Web开发工具和技术,使得开发者可以快速、高效地编写高质量的代码。 在“yii1.1中文文档”中,包含了Yii 1.1版本的详尽教程和参考指南。这个版本是Yii框架的一个...

    Yii框架详解

    总结,Yii框架凭借其高效、易用和安全的特性,成为PHP开发者构建大型Web应用的首选之一。通过深入学习Yii,开发者可以提高开发效率,同时保证应用的稳定性和安全性。无论你是初学者还是经验丰富的开发者,Yii都有...

    yii框架中文版手册pdf和chm格式

    - **PDF手册**:提供详细的API文档和技术指南,是学习Yii的重要资料。 - **CHM手册**:另一种格式的手册,适合离线查阅,同样包含了完整的框架指南和参考信息。 4. **开发流程**: - **配置**:通过配置文件设置...

    2014年辛星PHP教程秋季版之yii框架教程

    在深入学习2014年辛星PHP教程秋季版之Yii框架教程之前,我们需要明确几个核心概念。 首先,Yii是一个高级的PHP框架,广泛应用于Web开发,以敏捷和性能著称。它的核心思想包括快速开发、安全性以及专业性,旨在为...

    YII框架实例视频后盾网马振宇

    根据提供的文件信息,我们可以推断出本视频教程主要围绕YII框架进行讲解,特别是YII2版本的应用。...通过学习本教程,不仅可以掌握YII2框架的核心概念和技术要点,还能学会如何利用这些知识构建实用的Web应用程序。

    2016最全Yii框架

    教程名称: 2016最全Yii框架 YII是目前比较火的框架,框架里面使用了最新的技术和设计,可以说学习了YII就学习了最新的php技术,本课程主要学习XSS、CSRF、SQL注入、文件上传漏洞等攻击方式,以及YII框架对它们的...

    基于Yii2.0框架深度重构的B2B2C多用户商城系统

    通过对源码的学习和研究,开发者可以深入理解系统的架构设计,进行二次开发或定制化工作。 总结来说,ShopWind是一个全面的电商解决方案,利用Yii2.0框架的优势,提供了丰富的电商功能,并且具备跨平台支持。对于想...

    配合《带有sphinx搜索功能的yii2框架实例》的资源

    在《带有sphinx搜索功能的yii2框架实例》这本书中,作者可能详细介绍了如何在Yii2框架中配置和使用Sphinx或CoreSeek。这可能包括以下步骤: 1. **安装与配置**:首先,你需要在服务器上安装Sphinx或CoreSeek,然后...

    YII框架安装包和详细说明

    这个压缩包包含了用于学习和使用Yii框架的关键资源,包括框架的核心代码、安装指南、使用文档以及一些额外的参考资料。 首先,`yii-1.1.6.r2877.tar.gz` 是Yii框架的一个特定版本,1.1.6,版本号r2877,这通常是一...

    YiiFrame 是一个基于Yii2+Bootstrap的快速后台开发框架

    通过阅读和修改这些源码,开发者可以学习到如何自定义和扩展Yii2框架,以及如何结合Bootstrap来定制前端界面。 总的来说,YiiFrame提供了一个完整的开发环境,涵盖了从后端逻辑到前端展示的各个环节。无论是初学者...

    YII 1.1 Application Development Cookbook

    《YII 1.1 应用开发食谱》是一本深入探讨...总之,《YII 1.1 应用开发食谱》不仅是一本技术指南,更是开发者提升技能、加速项目开发的宝贵资源。无论是新手还是有经验的开发者,都能从中获得有价值的见解和实用的技巧。

    yii框架2.0

    #### 二、Yii框架特性与优势 ##### 1. **紧跟潮流** - **Yii** 团队密切关注业界最新的Web开发技术,并在框架中积极采用这些技术。例如,在**Yii 2.0** 中可以看到对PHP最新特性的支持,如命名空间等。 - 这种...

    uniapp源码外卖联盟小程序-后台PHP源码Yii框架开发的DuAdmin后台源码-.zip

    总的来说,这个项目涵盖了前端开发、后端开发、框架应用、小程序开发以及私域流量运营等多个层面,对于想要深入学习这些领域的开发者来说,这是一个非常有价值的学习和实践资源。同时,由于项目完全开源,对于有志于...

    yii框架中文手册及中文教程手册

    在中文教程中,你将学习到如何安装Yii框架,如何配置环境,如何创建项目结构,以及如何使用Yii的组件和服务。教程会详细解释每个关键概念,如路由、控制器、视图和模型的创建,以及如何利用Yii的模板引擎来美化输出...

    Yii Application Development Cookbook Second Edition

    《Yii应用开发食谱第二版》是一本关于Yii框架学习和应用的书籍,Yii是一个快速增长的PHP5 MVC(模型-视图-控制器)框架,其设计简洁高效,常被称作PHP的Rails。本书致力于帮助开发者快速深入地学习Yii框架,并用于...

Global site tag (gtag.js) - Google Analytics