当入口脚本在调用 [[yii\web\Application::run()|run()]] 方法时,它进行的第一个操作就是解析输入的请求,然后实例化对应的控制器操作处理这个请求。该过程就被称为引导路由(routing)。(译注:中文里既是动词也是名词)解析路由 路由引导的第一步,是把传入请求解析为一个路由。如我们在 控制器(Controllers)章节中所描述的那样,路由是一个用于定位控制器操作的地址。
启动引导是指:在应用开始解析并处理新接受请求之前,一个预先准备环境的过程。启动引导会在两个地方具体进行:入口脚本(Entry Script)和 应用主体(application)。在入口脚本里,需注册各个类库的类文件自动加载器(Class Autoloader,简称自动加载器)。这主要包括通过其 autoload.php 文件加载的 Composer 自动加载器,以及通过 Yii 类加载的 Yii 自动加载器。
每一次 Yii 应用开始处理 HTTP 请求时,它都会进行一个近似的流程。用户提交指向 入口脚本 web/index.php 的请求。入口脚本会加载 配置数组 并创建一个应用 实例用于处理该请求。应用会通过 request(请求) 应用组件解析被请求的 路由。应用创建一个 controller(控制器) 实例具体处理请求。
扩展是专门设计的在 Yii 应用中随时可拿来使用的,并可重发布的软件包。例如, yiisoft/yii2-debug扩展在你的应用的每个页面底部添加一个方便用于调试的工具栏,帮助你简单地抓取页面生成的情况。你可以使用扩展来加速你的开发过程。信息:本文中我们使用的术语 "扩展" 特指 Yii 软件包。而用术语"软件包" 和 "库"
Yii 中的资源是和 Web 页面相关的文件,可为 CSS 文件,JavaScript 文件,图片或视频等,资源放在 Web 可访问的目录下,直接被 Web 服务器调用。
模块是独立的软件单元,由模型, 视图,控制器和其他支持组件组成,终端用户可以访问在应用主体中已安装的模块的控制器,模块被当成小应用主体来看待,和应用主体不同的是,模块不能单独部署,必须属于某个应用主体。
小部件是在 视图 中使用的可重用单元,使用面向对象方式创建复杂和可配置用户界面单元。例如,日期选择器小部件可生成一个精致的允许用户选择日期的日期选择器,你只需要在视图中插入如下代码:<?phpuse yii\jui\DatePicker;?><?= DatePicker::widget(['name' => 'date']) ?>
过滤器是 控制器 动作 执行之前或之后执行的对象。例如访问控制过滤器可在动作执行之前来控制特殊终端用户是否有权限执行动作,内容压缩过滤器可在动作执行之后发给终端用户之前压缩响应内容。过滤器可包含 预过滤(过滤逻辑在动作之前) 或 后过滤(过滤逻辑在动作之后),也可同时包含两者。使用过滤器 过滤器本质上是一类特殊的 行为,所以使用过滤器和 使用 行为一样。
模型是 MVC 模式中的一部分,是代表业务数据、规则和逻辑的对象。可通过继承 [[yii\base\Model]] 或它的子类定义模型类,基类[[yii\base\Model]]支持许多实用的特性:属性: 代表可像普通类属性或数组一样被访问的业务数据;属性标签: 指定属性显示出来的标签;块赋值: 支持一步给许多属性赋值;验证规则: 确保输入数据符合所申明的验证规则;
视图是 MVC 模式中的一部分。它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为 PHP 脚本文件,主要包含 HTML 代码和展示类 PHP 代码,通过[[yii\web\View|view]]应用组件来管理,该组件主要提供通用方法帮助视图构造和渲染,简单起见,我们称视图模板或视图模板文件为视图。
控制器是 MVC 模式中的一部分,是继承[[yii\base\Controller]]类的对象,负责处理请求和生成响应。具体来说,控制器从应用主体接管控制后会分析请求数据并传送到模型,传送模型结果到视图,最后生成输出响应信息。操作 控制器由 操作 组成,它是执行终端用户请求的最基础的单元,一个控制器可有一个或多个操作。
应用主体是服务定位器,它部署一组提供各种不同功能的 应用组件 来处理请求。例如,urlManager组件负责处理网页请求路由到对应的控制器。db组件提供数据库相关服务等等。在同一个应用中,每个应用组件都有一个独一无二的 ID 用来区分其他应用组件,你可以通过如下表达式访问应用组件。\Yii::$app->componentID例如,可以使用 \Yii::$app->
应用主体是管理 Yii 应用系统整体结构和生命周期的对象。每个 Yii 应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问。补充: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统,是根据上下文来决定[译:中文为避免歧义,Application 翻译为应用主体]。
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.
Yii 应用参照模型-视图-控制器 (MVC)设计模式来组织。 模型代表数据、业务逻辑和规则;视图展示模型的输出;控制器接受出入并将其转换为模型和视图命令。除了 MVC, Yii 应用还有以下部分:入口脚本:终端用户能直接访问的 PHP 脚本,负责启动一个请求处理周期。应用:能全局范围内访问的对象,管理协调组件来完成请求.
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍如何使用 Gii 去自动生成 Web 站点常用功能的代码。使用 Gii 生成代码非常简单,只要按照 Gii 页面上的介绍输入正确的信息即可。贯穿本章节,你将会学到:在你的应用中开启 Gii使用 Gii 去生成活动记录类使用 Gii 去生成数据表操作的增查改删(CRUD)代码自定义 Gii 生成的代码开始 Gii Gii 是 Yii 中的一个模块。
本章节将介绍如何如何创建一个从数据表 country 中读取国家数据并显示出来的页面。为了实现这个目标,你将会配置一个数据库连接,创建一个活动记录类,并且创建一个操作及一个视图。
本章节介绍如何创建一个让用户提交数据的表单页。该页将显示一个包含 name 输入框和 email 输入框的表单。当提交这两部分信息后,页面将会显示用户所输入的信息。为了实现这个目标,除了创建一个操作和两个视图外,还需要创建一个模型。
本章描述了如何在你的应用中创建一个新的 “Hello” 页面。为了实现这一目标,将会创建一个操作和一个视图:应用将会分派页面请求给操作操作将会依次渲染视图呈现 “Hello” 给最终用户贯穿整个章节,你将会掌握三件事:如何创建一个操作去响应请求,如何创建一个视图去构造响应内容,以及一个应用如何分派请求给操作。
关注时代Java