201411-07 Yii框架官方教程增补篇2——开始:安装Yii框架 Yii的安装由如下两步组成:从 yiiframework.com 下载Yii框架。将Yii压缩包解压至一个Web可访问的目录(比如你的Web根目录/www/wwwroot/)。提示: 安装在Web目录不是必须的,每个Yii应用都有一个入口脚本,只有它才必须暴露给Web用户。其它PHP脚本(包括Yii)应该保护起来不被Web访问,因为它们可能会被黑客利用。需求:安装完Yii以后你也许想验证一下你的服务器是否满足使用Yii... 继续阅读 >
201411-07 Yii框架官方教程增补篇3——开始:创建第一个Yii应用 为了对Yii有个初步认识,我们在本节讲述如何建立第一个Yii应用。我们将使用yiic(命令行工具)创建一个新的Yii应用。Gii(强大的基于web的代码生成器)为特定的任务完成自动代码生成。假定YiiRoot为Yii的安装目录,WebRoot 是服务器的文档根目录。在命令行运行yiic,如下所示:%YiiRoot/framework/yiicwebappWebRoot/testdrive注意: 在MacOS、Linux或Unix系统中运行yiic时,你可能需要修改yiic文件... 继续阅读 >
201411-07 Yii框架官方教程增补篇4——基础知识:模型-视图-控制器 (MVC) Yii使用了Web开发中广泛采用的模型-视图-控制器(MVC)设计模式。MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他。在MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等;控制器则管理模型和视图中的通信。除了MVC,Yii还引入了一个前端控制器,叫做应用,它表示请求处理的执行上下文。应用处理用户的请求并将其分派到一个合适的... 继续阅读 >
201411-07 Yii框架官方教程增补篇5——基础知识:入口脚本 入口脚本是处理用户的初始引导PHP脚本。它是唯一一个最终用户可直接请求执行的PHP脚本。多数情况下,一个Yii应用的入口脚本包含像下面这样简单的脚本://在生产环境中请删除此行defined('YII_DEBUG')ordefine('YII_DEBUG',true);//包含Yii引导文件require_once('path/to/yii/framework/yii.php');//创建一个应用实例并执行$configFile='path/to/config/file.php';Yii::createWebApplication($configFile)->run();脚本首... 继续阅读 >
201411-07 Yii框架官方教程增补篇6——基础知识:应用、组件、配置、生命周期 应用是指请求处理中的执行上下文。它的主要任务是分析用户请求并将其分派到合适的控制器中以作进一步处理。它同时作为服务中心,维护应用级别的配置。鉴于此,应用也叫做前端控制器。应用由入口脚本创建为一个单例对象。这个应用单例对象可以在任何地方通过 Yii::app() 访问。1.应用配置默认情况下,应用是一个 CWebApplication 的实例。要自定义它,我们通常需要提供一个配置文件(或数组)以创建应... 继续阅读 >
201411-07 Yii框架官方指南系列7——基础知识:控制器 控制器是 CController 或其子类的实例。它在当用户请求时由应用创建。当一个控制器运行时,它执行所请求的动作,动作通常会引入所必要的模型并渲染相应的视图。 动作 的最简形式,就是一个名字以 action 开头的控制器类方法。控制器通常有一个默认的动作。当用户的请求未指定要执行的动作时,默认动作将被执行。默认情况下,默认的动作名为 index。它可以通过设置 CController::defau... 继续阅读 >
201411-07 Yii框架官方指南系列8——基础知识:模型 模型是 CModel 或其子类的实例。模型用于保持数据以及与其相关的业务逻辑。模型是单独的数据对象。它可以是数据表中的一行,或者一个用户输入的表单。数据对象的每个字段对应模型中的一个属性。每个属性有一个标签(label),并且可以通过一系列规则进行验证。Yii实现了两种类型的模型:表单模型和ActiveRecord。二者均继承于相同的基类 CModel。表单模型是 CFormModel 的实例。表单模型用于保持从用户的输入获取的数... 继续阅读 >
201411-07 Yii框架官方指南系列9——基础知识:视图 视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中。视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。视图的名称与其视图脚本名称是一样的.例如:视图 edit的名称出自一个名为 edit.php 的脚本文件.要渲染时如,需通过传递视图的名... 继续阅读 >
201411-07 Yii框架官方指南系列10——基础知识:组件 Yii应用建立于组件之上。组件是 CComponent 或其子类的实例。使用组件主要涉及访问它的属性以及触发或处理它的时间。基类 CComponent 指定了如何定义属性和事件。1.组件属性组件的属性就像对象的公共成员变量。它是可读写的。例如:$width=$component->textWidth;//获取textWidth属性$component->enableCaching=true;//设置enableCaching属性要定义一个组件属性,我们只需在组件类中定义一个公共成员... 继续阅读 >
201411-07 Yii框架官方系列指南系列11——基础知识:模块 注意: 版本1.0.3起支持模块。模块是一个独立的软件单元,它包含 模型, 视图, 控制器 和其他支持的组件。在许多方面上,模块看起来像一个 应用。主要的区别就是模块不能单独部署,它必须存在于一个应用里。用户可以像他们访问普通应用的控制器那样访问模块中的控制器。模块在一些场景里很有用。对大型应用来说,我们可能需要把它划分为几个模块,每个模块可以单独维护和部署。一些通用的功能,例如用户管理,评论管理... 继续阅读 >
201411-07 Yii框架官方指南系列12——基础知识:路径别名与名字空间 Yii中广泛的使用了路径别名。路径别名关联于一个目录或文件的路径。它以点号语法指定,类似于广泛使用的名字空间(namespace)格式:RootAlias.path.to.target其中的 RootAlias 是某个现存目录的别名。通过使用 YiiBase::getPathOfAlias(),别名可以被翻译为其相应的路径。例如, system.web.CController 会被翻译为 yii/framework/web/CController。通过调用 YiiBase::setPathOfAlias(),我们可以定义新的根路径别... 继续阅读 >
201411-07 Yii框架官方指南系列13——基础知识:开发规范 Yii偏爱规范胜于配置。遵循规范可使你能够创建成熟的Yii应用而不需要编写、维护复杂的配置。当然了,在必要时,Yii仍然可以在几乎所有的方面通过配置实现自定义。下面我们讲解Yii编程中推荐的开发规范。为简单起见,我们假设WebRoot是Yii应用安装的目录。1.URL默认情况下,Yii识别如下格式的URL:http://hostname/index.php?r=ControllerID/ActionIDr GET变量意为 路由(route) ,它可以被Yii解析为控制器... 继续阅读 >
201411-07 Yii框架官方指南系列14——基础知识:开发流程 介绍过Yii中的基本概念之后,我们现在讲解使用Yii开发Web应用时的一般开发流程。此处的开发流程假设我们已经完成了对应用的需求分析和必要的设计分析。创建目录结构骨架。创建第一个Web应用 中讲到的 yiic工具可以快速实现此步骤。配置此 应用。这是通过修改应用配置文件实现的。此步骤可能也需要编写一些应用组件(例如用户组件)。为所管理的每个类型的数据创建一个 模型 类。 CreatingFirstYiiApplication ... 继续阅读 >
201411-07 Yii框架官方指南系列15——基础知识:最佳MVC实践 尽管模型——视图——控制器(MVC)被几乎每一个Web开发人员所熟知,但是在实际应用开发中如何合理使用MVC依然困扰着许多人。MC背后的核心思想是代码的可重用性以及逻辑与视图的分离。 在本节中,我们将会讲述在使用Yii框架的过程中如何更好的使用MVC开发应用。为了更好进行解释阐述,我们假设Web应用包含了如下的一些子应用:前端:面向终端用户的公共网站界面;后端:提供管理整个网站应用的管理功能,通常只有管理员才能访... 继续阅读 >
201411-07 Yii框架官方指南系列16——使用表单:概览 通过HTML表单收集用户数据是Web程序开发的主要工作之一。除了表单设计外,开发者还需要将现存的或默认的数据填充到表单,验证用户输入,对无效的输入显示适当的错误信息,保存输入到持久性存储器。Yii通过其MVC结构极大地简化了此工作流程。在Yii中处理表单时,通常需要以下步骤:创建用于表现所要收集数据字段的模型类。创建一个控制器动作,响应表单提交。在视图脚本中创建与控制器动作相关的表单。在后续... 继续阅读 >
201411-07 Yii框架官方指南系列17——使用表单:创建模型 在编写表单所需的HTML代码之前,我们应该先确定来自最终用户输入的数据的类型,以及这些数据应符合什么样的规则。模型类可用于记录这些信息。正如模型章节所定义的,模型是保存用户输入和验证这些输入的中心位置。取决于使用用户所输入数据的方式,我们可以创建两种类型的模型。如果用户输入被收集、使用然后丢弃,我们应该创建一个 表单模型;如果用户的输入被收集后要保存到数据库,我们应使用一个 ActiveRecord 。... 继续阅读 >