Yii enables maximum reusability in Web programming and can significantly accelerate the development process.
To work with Yii, a developer needs to know PHP OOP.
Yii is highly reusable and extensible. It is purely object-oriented.
Everything in Yii is a self-contained component which can be configured, reused or extended easily. More importantly, Yii has an ever-increasing extension library consisting of user-contributed components, which may help reduce your development time significantly.
Four examples (blog, hangman game, phone book and basic 'Hello world!' page) are included in the download package.
Here are some key features of "Yii PHP Framework":
· Model-View-Controller (MVC) design pattern: Yii adopts this proven technique in Web programming which can better separate logic from presentation.
· Database Access Objects (DAO) and Active Record: Yii allows developers to model database data in terms of objects and save their effort of writing long and repetitive SQL statements.
· Integration with jQuery: as one of the most popular JavaScript framework, jQuery enables writing highly efficient and versatile JavaScript interfaces.
· Form input and validation: Yii makes collecting form input extremely easy and safe. Yii comes with a set of validators which can be used to ensure validity of input data, and it also has helper methods and widgets to indicate errors when validation fails.
· Web 2.0 widgets: powered by jQuery, Yii comes with a set of Web 2.0 widgets, such as auto-complete input field, treeview, and so on.
· Authentication and authorization: Yii has built-in authentication support. It also supports authorization via hierarchical role-based access control (RBAC).
· Theming: it enables change of the outlook of an Yii application instantly.
· Web services: Yii supports automatic generation of complex WSDL service specifications and management of Web service request handling.
· Internationalization (I18N) and localization (L10N): Yii supports message translation, date and time formatting, number formatting, and interface localization.
· Layered caching scheme: Yii supports data caching, page caching, fragment caching and dynamic content. The storage medium of caching can be changed easily without touching the application code.
· Error handling and logging: errors are handled and presented more nicely, and log messages can be categorized, filtered and routed to different destinations.
· Security: Yii is equipped with many security measures to help secure Web applications to prevent cyber attacks. These measures include cross-site scripting (XSS) prevention, cross-site request forgery (CSRF) prevention, cookie tampering prevention, etc.
· Compliance to XHTML: Code generated by Yii components and command line tools complies to the XHTML standard.
· Automatic code generation: Yii provides the tools that can automatically generate the code that you need, such as a skeleton application, CRUD applications, etc.
· Purely object-oriented: Yii framework sticks to strict OOP paradigm. It does not define any global function or variable. And the class hierarchy that it defines allows maximum reusability and customization.
· Friendly with third-party code: Yii is carefully designed to work well with third-party code. For example, you can use code from PEAR or Zend Framework in your Yii application.
· Detailed documentation: every single method or property is clearly documented. A comprehensive tutorial is also provided together with other minor tutorials.
· Extension library: Yii provides an extension library consisting of user-contributed components. This makes the above feature list never ending.
What's New in This Release: [ read full changelog ]
· Changed the constructor of CUploadedFile to be public.
· Added support to invalidate cached content by setting COutputCache::duration to be 0.
· Upgraded HTMLPurifier to v4.3.0.
· Changed XML mimetype to application/xml for more interoperability.
· Upgraded JQuery UI to 1.8.13.
· Upgraded jQuery to 1.6.1.
· Upgraded Blueprint CSS to 1.0.1.
· CWebService will not display source file name and error line number in production mode.
· Setting CDbConnection::$emulatePrepare to be false will now explicitly set PDO::ATTR_EMULATE_PREPARES to be false.
· Changed CHtml::clientChange event binding to support custom event types and avoid conflicts when using AJAX.