介绍过 Yii 中的基本概念之后,我们现在讲解使用 Yii 开发Web应用时的一般开发流程。 此处的开发流程假设我们已经完成了对应用的需求分析和必要的设计分析。创建目录结构骨架。创建第一个Web应用 中讲到的 yiic工具可以快速实现此步骤。配置此 应用。这是通过修改应用配置文件实现的。 此步骤可能也需要编写一些应用组件(例如用户组件)。为所管理的每个类型的数据创建一个 模型 类。 Creating First Yii Application 和 Automati...
尽管模型——视图——控制器 (MVC) 被几乎每一个Web开发人员所熟知,但是在实际应用开发中如何合理使用MVC依然困扰着许多人。MC背后的核心思想是代码的可重用性以及逻辑与视图的分离。 在本节中, 我们将会讲述在使用Yii框架的过程中如何更好的使用MVC开发应用。为了更好进行解释阐述,我们假设Web应用包含了如下的一些子应用:前端: 面向终端用户的公共网站界面;后端:提供管理整个网站应用的管理功能,通常只有管理员才能访问使用...
Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式。 MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他。 在 MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等; 控制器则管理模型和视图中的通信。除了 MVC, Yii 还引入了一个前端控制器,叫做 应用,它表示请求处理的执行上下文。 应用处理用户的请求并将其分派到一个合适的控...
入口脚本是处理用户的初始引导PHP脚本。它是唯一一个最终用户可直接请求执行的PHP脚本。多数情况下,一个 Yii 应用的入口脚本包含像下面这样简单的脚本:// 在生产环境中请删除此行 defined(YII_DEBUG) or define(YII_DEBUG,true); // 包含Yii引导文件 require_once(path/to/yii/framework/yii.php); // 创建一个应用实例并执行 $configFile=path/to/config/file.php; Yii::createWebApplication($configFile)->run();脚本首先包含...
应用是指请求处理中的执行上下文。它的主要任务是分析用户请求并将其分派到合适的控制器中以作进一步处理。 它同时作为服务中心,维护应用级别的配置。鉴于此,应用也叫做前端控制器。应用由入口脚本创建为一个单例对象。这个应用单例对象可以在任何地方通过 Yii::app() 访问。1. 应用配置默认情况下,应用是一个 CWebApplication 的实例。要自定义它,我们通常需要提供一个配置文件 (或数组) 以创建应用实例时初始化其属性值。自...
控制器是 CController 或其子类的实例。它在当用户请求时由应用创建。 当一个控制器运行时,它执行所请求的动作,动作通常会引入所必要的模型并渲染相应的视图。 动作 的最简形式,就是一个名字以 action 开头的控制器类方法。控制器通常有一个默认的动作。当用户的请求未指定要执行的动作时,默认动作将被执行。 默认情况下,默认的动作名为 index。它可以通过设置 CController::defaultAction 修改。如下是一个控制器类所需的最简...
模型是 CModel 或其子类的实例。模型用于保持数据以及与其相关的业务逻辑。模型是单独的数据对象。它可以是数据表中的一行,或者一个用户输入的表单。 数据对象的每个字段对应模型中的一个属性。每个属性有一个标签(label), 并且可以通过一系列规则进行验证。Yii 实现了两种类型的模型:表单模型和 Active Record。二者均继承于相同的基类 CModel。表单模型是 CFormModel 的实例。表单模型用于保持从用户的输入获取的数据。 这些...
视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中。视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。视图的名称与其视图脚本名称是一样的.例如:视图 edit的名称出自一个名为 edit.php 的脚本文件.要渲染时如,需通过传递视图的名称调用...
Yii 应用建立于组件之上。组件是 CComponent 或其子类的实例。使用组件主要涉及访问它的属性以及触发或处理它的时间。 基类 CComponent 指定了如何定义属性和事件。1. 组件属性组件的属性就像对象的公共成员变量。它是可读写的。例如:$width=$component->textWidth; // 获取 textWidth 属性 $component->enableCaching=true; // 设置 enableCaching 属性要定义一个组件属性,我们只需在组件类中定义一个公共成员变量即可。更...
注意: 版本 1.0.3 起支持模块。模块是一个独立的软件单元,它包含 模型, 视图, 控制器 和其他支持的组件。 在许多方面上,模块看起来像一个 应用。主要的区别就是模块不能单独部署,它必须存在于一个应用里。 用户可以像他们访问普通应用的控制器那样访问模块中的控制器。模块在一些场景里很有用。对大型应用来说,我们可能需要把它划分为几个模块,每个模块可以单独维护和部署。一些通用的功能,例如用户管理, 评论管理,可以以模...
Yii 中广泛的使用了路径别名。路径别名关联于一个目录或文件的路径。它以点号语法指定,类似于广泛使用的名字空间(namespace)格式:RootAlias.path.to.target其中的 RootAlias 是某个现存目录的别名。通过使用 YiiBase::getPathOfAlias(), 别名可以被翻译为其相应的路径。 例如, system.web.CController 会被翻译为 yii/framework/web/CController。通过调用 YiiBase::setPathOfAlias(),我们可以定义新的根路径别名。1. Root ...
Yii 偏爱规范胜于配置。遵循规范可使你能够创建成熟的Yii应用而不需要编写、维护复杂的配置。 当然了,在必要时,Yii 仍然可以在几乎所有的方面通过配置实现自定义。下面我们讲解 Yii 编程中推荐的开发规范。 为简单起见,我们假设 WebRoot 是 Yii 应用安装的目录。1. URL默认情况下,Yii 识别如下格式的 URL:http://www.gxlcms.com/r GET 变量意为 路由(route) ,它可以被Yii解析为 控制器和动作。 如果 ActionID 被省略,控制...
PHP字符串函数包括查找字符位置函数;提取子字符函数;替换字符串;字符长度;比较字符函数;分割成数组字符;去除空格等等。 PHP语言中的字符串函数也是一个比较易懂的知识。今天我们就为大家总结了将近12种PHP字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的PHP知识库。1查找字符位置函数: strpos($str,search,[int]):查找search在$str中的第一次位置从int开始; stripos($str,search,[int]):函数返回字符串在另...
1 定义运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。运算符可按照其能接受几个值来分组:① 一元运算符只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。 ② 二元运算符可接受两个值,例如熟悉的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。③ 三元运算符 ? :,可接受三个值;通常就简单称之为“三元运算符”(尽管称之为条件运...
PHP 代表 PHP: Hypertext PreprocessorPHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器PHP 文件的默认文件扩展名是 ".php"PHP能做什么PHP 可以生成动态页面内容PHP 可以创建、打开、读取、写入、关闭服务器上的文件PHP 可以收集表单数据PHP 可以发送和接收 cookiesPHP 可以添加、删除、修改您的数据库中的数据PHP 可以限制用户访问您的网站上的一些页面PHP 可以加密数...