Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。
Yii2的优点
- Yii容易学习和使用。你只需要知道PHP和面向对象编程,便可以很快上手,而不必事先去学习一种新的架构或者模板语言。用Yii的开发速度非常之快,除框架本身之外,需要为应用所写的编码极少。事实上这是最高效的开发框架之一。
- Yii 具有高度的可重用性和可扩展性,是纯粹的面向对象的。Yii中的一切都是独立的可被配置,可重用,可扩展的组件。更重要的是Yii有着越来越多的扩展库。主要由使用者贡献出的组件组成,这可能有助于大大减少您的开发时间。
- Yii 有着丰富的功能. 从 MVC,DAO/ActiveRecord, 到 主题化, 国际化 和本地化, Yii 提供了几乎所有今天的Web 2.0应用程序开发所需的功能。
- 在Yii参考手册是Yii完备的文档,有着你学习和掌握它所需要的任何信息。Yii一开始就精心设计,以适应复杂的WEB应用开发。他不是一些项目的副产品或者第三方集成。而是融合了作者丰富的 Web 应用开发经验和其它热门 Web 框架和应用的优秀思想的结晶。
- 最后,但并非不重要,Yii是免费的,Yii遵循最新的BSD许可。它确保了它的第三方开发也循序和BSD相兼容的许可。这意味着无论从法律上还是财务上来说,您都可以自由的使用yii来开发任何一个开源的或者私有的应用。
Yii2的特点
- 快速:Yii 只加载您需要的功能。它具有强大的缓存支持。它明确的设计能与 AJAX 一起高效率的工作。
- 安全:Yii 的标准是安全的。它包括了输入验证,输出过滤,SQL 注入和跨站点脚本的预防。
- 专业:Yii 可帮助您开发清洁和可重用的代码。它遵循了MVC模式,确保了清晰分离逻辑层和表示层。
Yii2的特性
Yii几乎拥有了当今Web 2.0应用发展的全部特性。下面是这些特性的一个简短的清单。
- 模型-视图-控制器(MVC)设计模式:Yii在WEB编程中采用这一成熟的技术从而可以更好的将逻辑层和表现层分开。
- 据库访问对象(DAO)和Active Record:Yii允许开发者模型数据库中的数据对象,从而减少他们在写很长和重复的SQL语句上的精力。
- jQuery整合:作为最流行的JavaScript框架之一,jQuery可以编写高效而灵活的JavaScript接口。
- 表单输入和验证:YII使得收集表单输入非常容易和安全。 Yii拥有一套确保数据的有效性的验证器,它也有辅助方法和部件,显示验证失败时的错误。
- Web 2.0部件:由jQuery的支持,YII配备了一套Web 2.0的部件,如自动完成输入字段,TreeView等等。
- 身份验证和授权:Yii具有内置的身份验证支持。它也支持通过分层的基于角色的访问控制(RBAC)的授权。
- 主题:它能够瞬间改变一个Yii应用的视图。
- Web服务:Yii支持自动生成复杂的WSDL服务规范和管理Web服务请求处理。
- 国际化(I18N)和本地化(L10N):Yii支持消息转换,日期和时间格式,数字格式和界面本地化。
- 分层缓存方案:Yii支持数据缓存,页面缓存,片段缓存和动态内容。缓存的存储介质,可以轻松地更改而不触及应用程序代码。
- 错误处理和日志记录:错误的处理很好的呈现出来,日志信息可以分类,过滤并分配到不同的位置。
- 安全:Yii配备了许多安全的措施,以帮助安全的Web应用程序,以防止网络攻击。这些措施包括跨站点脚本(XSS)预防,跨站点请求伪造(CSRF)预防,Cookie篡改预防等。
- 符合XHTML:Yii的组件和命令行工具生成的代码符合XHTML标准。
- 自动代码生成:Yii提供了可以自动生成的代码的工具,根据你的需要,例如生成一个程序骨架,CRUD应用等等。
- 完全面向对象:Yii框架坚持严格的面向对象编程范式。它没有定义任何全局函数或变量。而且,它定义的类层次结构允许最大的可重用性和定制。
- 友好的使用第三方代码:Yii精心设计让它第三方代码非常好的工作。例如,你可以在你的Yii应用程序中使用PEAR或Zend Framework的代码。
- 详细的文档:每一个单一的方法或属性都非常清楚的记录着。同时提供了一个全面的教程和一些新手教程。
- 扩展库:Yii提供了一个组成用户提供组件的一个扩展库,这使得上述功能列表是永无止境的。