下载APP 随时随地学编程
返回 首页

Yii 2.0 权威指南

开始阅读

手册说明:

一、Yii是什么?


Yii(Yii Framework)创始人薛强于2008年1月1日开始开发,是一个高性能的PHP5web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以帮助开发者快速完成应用程序的开发。

Yiic 生成的应用程序的界面如下图所示:


二、Yii历史版本


Qiang 在开发和维护 Prado 超过三年并意识到需要一个简单,高效和扩展性框架,于是,在2008年1月1日开始了 Yii 项目。在2008年10月经过十个月的独自开发,Qiang 发布了 Yii 的第一个试用版本并迅速得到广泛的关注,因为 Yii 在性能上的胜出其他主流的PHP框架,而且几乎拥有了所有的特性。 在2008年12月3日,Yii 1.0正式发布了


Yii目前有两个主要的版本: 2.0 和 1.1。
  • yii 最先发布稳定版本为:1.1.14 (2013年8月11日发布);
  • yii 最新发布稳定版本为:2.0.0 (发布于 2014年10月12日发布)。


三、如何使用《Yii2.0 权威指南》?

Yii2.0 权威指南 将教你从Yii入门Yii高级的知识。

Yii入门知识包含

  1. Yii如何安装——本章节将告诉你如何安装Yii。
  2. Yii应用的运行——本章节将介绍应用的内建功能,如何组织代码,以及一般情况下应用如何处理请求。
  3. Yii应用中创建一个新的 “Hello” 页面——本章描述了如何在你的应用中创建一个新的 “Hello” 页面。
  4. Yii如何创建一个让用户提交数据的表单页——本章节介绍如何创建一个让用户提交数据的表单页。
  5. yii如何使用数据库——本章节将介绍如何如何创建一个从数据表 country 中读取国家数据并显示出来的页面。
  6. Yii如何用 Gii 生成代码(Generating Code with Gii)——本章将介绍如何使用 Gii 去自动生成 Web 站点常用功能的代码。
  7. 深入了解Yii——本章将介绍一些有助于更好使用 Yii 的资源。


  Yii 应用参照模型 视图 - 控制器 (MVC)设计模式来组织。 

模型代表数据、业务逻辑和规则;

视图展示模型的输出;

控制器接受出入并将其转换为模型视图命令。

除了 MVC, Yii 应用还有以下部分:

  • 入口脚本:终端用户能直接访问的 PHP 脚本,负责启动一个请求处理周期。
  • 应用:能全局范围内访问的对象,管理协调组件来完成请求.
  • 应用组件:在应用中注册的对象,提供不同的功能来完成请求。
  • 模块:包含完整 MVC 结构的独立包,一个应用可以由多个模块组建。
  • 过滤器:控制器在处理请求之前或之后需要触发执行的代码。
  • 小部件:可嵌入到视图中的对象,可包含控制器逻辑,可被不同视图重复调用。

下面的示意图展示了 Yii 应用的静态结构:



每一次 Yii 应用开始处理 HTTP 请求时,它都会进行一个近似的流程。

  1. 用户提交指向 入口脚本 web/index.php 的请求。
  2. 入口脚本会加载 

    在这个版块中,我们会更加详细地描述某些步骤的具体运作。


关键概念


缓存

缓存是提升 Web 应用性能简便有效的方式。通过将相对静态的数据存储到缓存并在收到请求时取回缓存,应用程序便节省了每次重新生成这些数据所需的时间。

缓存可以应用在 Web 应用程序的任何层级任何位置。在服务器端,在较的低层面,缓存可能用于存储基础数据,例如从数据库中取出的最新文章列表;在较高的层面,缓存可能用于存储一段或整个 Web 页面,例如最新文章的渲染结果。在客户端,HTTP 缓存可能用于将最近访问的页面内容存储到浏览器缓存中。

Yii 支持如上所有缓存机制:



四、2016最热门的5个PHP框架

每个PHP框架都拥有各自独特的地方。2016年最热门的PHP框架都有哪些呢?下面让我们来一起盘点一下2016最热门的PHP框架都有哪些。

Laravel


就如谷歌热门趋势表所展现的,Laravel一直是PHP开发者最受欢迎的PHP框架。这是一个年轻的框架,但是拥有优雅的语法,可简单快速开发你的应用。它拥有大多数常见的功能,如:路由,身份验证,会话,队列和缓存。

CodeIgniter


排名第二的是CodeIgniter。它是一个轻量级的PHP框架,提供了简单而精致的平台来开发你的的Web应用程序。但是使得CI排名第二的最重要的原因就是CI并没有提供足够的安全防护,所以这并不是我们选择框架的首选。

Yii 2


一个基于DRY (Don’t Repeat Yourself) 理念的,拥有简洁编程逻辑的纯面向对象框架。Yii2中整合了jQuery还有一套完整的AJAX机制可以使得很好的扩展你的皮肤和主题功能。总的来说,Yii2框架对于前端转后端的开发者来说很友好。

CakePHP


CakePHP同样是一款受PHP开发者欢迎的框架,因为它轻量级、简单、反应迅速并且编写简单。它的模板简单易用。CakePHP基于“CRUD”,这是在数据库交互最方便以及最流行的功能方式。CakePHP还有用像:安全验证、邮件、会话、cookie和请求处理这些功能。CakePHP最大的缺点就是没有支持面向对象。

Symfony2


Symfony一直是PHP开发者稳定使用的框架之一。它非常灵活并且功能强大。Symfony有很多可以复用的部分比如:安全、模板、转义、验证、表单配置等。





更新记录
目录

介绍(Introduction)

关于 Yii(About Yii)
从 Yii 1.1 升级(Upgrading from Version 1.1)

入门(Getting Started)

安装 Yii(Installing Yii)
运行应用(Running Applications)
第一次问候(Saying Hello)
使用 Forms(Working with Forms)
玩转 Databases(Working with Databases)
用 Gii 生成代码(Generating Code with Gii)
更上一层楼(Looking Ahead)

应用结构(Application Structure)

结构概述(Overview)
入口脚本(Entry Scripts)
应用(Applications)
应用组件(Application Components)
控制器(Controllers)
模型(Models)
视图(Views)
模块(Modules)
过滤器(Filters)
小部件(Widgets)
前端资源(Assets)
扩展(Extensions)

请求处理(Handling Requests)

运行概述(Overview)
引导(Bootstrapping)
路由引导与创建 URL(Routing and URL Creation)
请求(Requests)
响应(Responses)
Sessions and Cookies
错误处理(Handling Errors)
日志(Logging)

关键概念(Key Concepts)

组件(Components)
属性(Properties)
事件(Events)
行为(Behaviors)
配置(Configurations)
别名(Aliases)
类自动加载(Class Autoloading)
服务定位器(Service Locator)
依赖注入容器(Dependency Injection Container)

配合数据库工作(Working with Databases)

数据库访问(Data Access Objects): 数据库连接、基本查询、事务和模式操作
查询生成器(Query Builder): 使用简单抽象层查询数据库
活动记录(Active Record): 活动记录对象关系映射(ORM),检索和操作记录、定义关联关系
数据库迁移(Migrations): 在团体开发中对你的数据库使用版本控制
Sphinx
Redis
MongoDB
ElasticSearch

接收用户数据(Getting Data from Users)

创建表单(Creating Forms)
输入验证(Validating Input)
文件上传(Uploading Files)
收集列表输入(Collecting Tabular Input)
多模型同时输入(Getting Data for Multiple Models)

显示数据(Displaying Data)

格式化输出数据(Data Formatting)
分页(Pagination)
排序(Sorting)
数据提供器(Data Providers)
数据小部件(Data Widgets)
操作客户端脚本(Working with Client Scripts)
主题(Theming)

安全(Security)

认证(Authentication)
授权(Authorization)
处理密码(Working with Passwords)
客户端认证(Auth Clients)
安全领域的最佳实践(Best Practices)

缓存(Caching)

概述(Overview)
数据缓存(Data Caching)
片段缓存(Fragment Caching)
分页缓存(Page Caching)
HTTP 缓存(HTTP Caching)

RESTful Web 服务

快速入门(Quick Start)
资源(Resources)
控制器(Controllers)
路由(Routing)
格式化响应(Response Formatting)
授权验证(Authentication)
速率限制(Rate Limiting)
版本化(Versioning)
错误处理(Error Handling)

开发工具(Development Tools)

调试工具栏和调试器(Debug Toolbar and Debugger)
使用 Gii 生成代码(Generating Code using Gii)
TBD 生成 API 文档(Generating API Documentation)

测试(Testing)

概述(Overview)
搭建测试环境(Testing environment setup)
单元测试(Unit Tests)
功能测试(Functional Tests)
验收测试(Acceptance Tests)
测试夹具(Fixtures)

高级专题(Special Topics)

高级应用模版(Advanced Project Template)
从头构建自定义模版(Building Application from Scratch)
控制台命令(Console Commands)
核心验证器(Core Validators)
国际化(Internationalization)
收发邮件(Mailing)
性能优化(Performance Tuning)
共享主机环境(Shared Hosting Environment)
模板引擎(Template Engines)
集成第三方代码(Working with Third-Party Code)

小部件(Widgets)

Bootstrap 小部件(Bootstrap Widgets)
jQuery UI 小部件(jQuery UI Widgets)

助手类(Helpers)

助手一览(Overview)
Array 助手(ArrayHelper)
Html 助手(Html)
Url 助手(Url)

关闭