Yii2.0的亮点

Yii有两个最主要的版本:Yii1.1和Yii2.0。Yii1.1是老的版本,在写这本书时,最新版本号是1.1.15。 Yii1.1现在已经不再进行新的开发了,官方只是进行维护,更新安全漏洞等,不会再有新的功能特性的引入。 而Yii2.0是在Yii1.1的基础上完全推倒重新写的一个框架,吸收了许多当前最新的技术和开发中的主流约定, 是最新一代Web开发框架的代表。 附录1:Yii2.0 对比 Yii1.1 的重大改进 部分介绍了Yii2.0对比Yii1.1的重大改进。 下面我们简单介绍Yii2.0的一些比较突出的特点:

  • 运用了PHP命名空间、Trait、 PSR标准 、Composer和Bower包管理器, 等新技术新标准。
  • 实现了 依赖注入和依赖注入容器 以及 服务定位器(Service Locator) 等新架构新模式。
  • Yii2.0格外重视安全性,采取一系列手段有效防止SQL注入、XSS攻击、CSRF攻击、cookie篡改等。
  • 广泛支持各类SQL和NOSQL数据库,高效实现了Active Record等数据库查询、操作界面,提供数据库迁移、复制、 读写分离等功能。
  • 只需极少量的代码就可以实现完全符合标准的RESTful API。
  • 支持各种粒度、介质的缓存机制。
  • 提供多种认证和授权手段基于cookie和基于令牌的认证,RBAC等权限控制手段,支持OpenID,OAuth1,OAuth2等。
  • 支持Bootstrap,jQuery UI,提供了丰富的Widget挂件供使用。
  • 完善的国际化支持,提供符合 ICU标准 的时间、复数等格式化工具和消息翻译、视图翻译等功能。
  • 除了支持Twig和Smarty 2个主流的PHP模版引擎外,开发者还可以自己写扩展支持其他引擎。
  • 为苦命码农提供了 Yii调试工具条 和 Gii代码生成器 以及 文档生成器 等高效开发工具。
  • 集成了 Codeception 和 Faker,并与DB Migration相结合,提供了一个fixture框架,方便测试开发。
  • 提供了一个简单应用模板和高级应用模板,适用于不同的开发场景,都可以帮助开发者尽快搭建起自己的应用。

详细的Yii2.0功能特性,请查看 官方说明

背景知识

请留意,虽然本书以Yii2为主要内容,但并不要求读者具有Yii1.1的开发经验。 虽然具有这些背景知识可以更快的掌握Yii2,但在讲解过程中,本书会帮助没有Yii1.1相关知识的读者补充有关的概念。 只要有了这些概念,读者并不需要从头学习Yii1.1,就可以直接上手Yii2了。

当然,Yii作为一个PHP框架,读者朋友最好能够了解一下PHP,并不需要多精通,只需要看得懂代码,会写简单的代码, 编程的时候大概知道要使用哪些函数,就基本足够了,边用边学,也是一种学习方法。

同时,Yii还是一个面向对象的框架。这意味着在代码组织和问题解决的思路上,Yii都体现了面向对象的思想。 要用Yii来开发,最好也要遵循这一思想。因此,读者最好对面向对象编程有一定的了解。 其实,看一个程序员水平的高低,不单是对于某种语言、某种开发框架的熟练程度。 更重要的,是看其解决问题的思路和方法。其中一大类方法就是面向对象方法。 从这点来看,虽然学习和使用Yii并不需要多高深的面向对象的方法。 但作为过来人,还是希望各位读者朋友可以系统地、全面地学习面向对象的开发方法。 特别是Web开发中常用的设计模式,本书也会在涉及到时,进行专门讲解。