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提供了一个组成用户提供组件的一个扩展库,这使得上述功能列表是永无止境的。