Yii
Encyclopedia
Yii is an open source
, object-oriented
, high-performance component-based
PHP
web application framework
. Yii is pronounced as "Yee" or [ji:] and it's an acronym for "Yes It Is!".
There was also an official extension library whose name was zii, which was then merged with core framework. It is bundled in every release since Yii version 1.1.0 and it includes additional behaviors and widgets, such as grids and jQuery UI
widgets.
There's also a user-contributed documentation, most of which is available within the wiki on the official website.
Web applications.
The text contained in the Official Yii Documentation is licensed to the public under the GNU Free Documentation License
(GFDL). In general, the Yii documentation content can be copied, modified, and redistributed so long as the new version grants the same freedoms to others and acknowledges the authors of the Yii documentation article used.
The logo is licensed under a Creative Commons
Attribution-No Derivative Works 3.0 Unported License.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
, object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
, high-performance component-based
Component-based software engineering
Component-based software engineering is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system...
PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
web application framework
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...
. Yii is pronounced as "Yee" or [ji:] and it's an acronym for "Yes It Is!".
History
The Yii project started on January 1, 2008, in order to fix some drawbacks of the PRADO framework. For example, PRADO was slow when handling complex pages, had a steep learning curve and many controls were difficult to customize, while Yii is much easier and more efficient. In October 2008 after ten months of private development, the first alpha version of Yii was released. On December 3, 2008, Yii 1.0 was formally released.Features
Yii features include:- Model-View-Controller (MVC) design pattern.
- Database Access ObjectsData Access ObjectIn computer software, a data access object is an object that provides an abstract interface to some type of database or persistence mechanism, providing some specific operations without exposing details of the database. It provides a mapping from application calls to the persistence layer...
(DAO), query builder, Active RecordActive record patternIn software engineering, the active record pattern is an architectural pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his 2003 book Patterns of Enterprise Application Architecture...
and database migration. - Integration with jQueryJQueryjQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig...
. - FormForm (web)A webform on a web page allows a user to enter data that is sent to a server for processing. Webforms resemble paper or database forms because internet users fill out the forms using checkboxes, radio buttons, or text fields...
input and validationData validationIn computer science, data validation is the process of ensuring that a program operates on clean, correct and useful data. It uses routines, often called "validation rules" or "check routines", that check for correctness, meaningfulness, and security of data that are input to the system...
. - AjaxAjax (programming)Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
-enabled widgets, such as auto-complete input field, treeview, and so on. - Built-in authenticationAuthenticationAuthentication is the act of confirming the truth of an attribute of a datum or entity...
support. It also supports authorizationAuthorizationAuthorization is the function of specifying access rights to resources, which is related to information security and computer security in general and to access control in particular. More formally, "to authorize" is to define access policy...
via hierarchical role-based access controlRole-Based Access ControlIn computer systems security, role-based access control is an approach to restricting system access to authorized users. It is used by the majority of enterprises with more than 500 employees, and can be implemented via mandatory access control or discretionary access control...
(RBAC). - Skinning and theming.
- Automatic generation of complex WSDLWeb Services Description LanguageThe Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...
service specifications and management of Web serviceWeb serviceA Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
request handling. - Internationalization and localizationInternationalization and localizationIn computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market...
(I18N and L10N). It supports message translation, date and time formatting, number formatting, and interface localization. - Layered cachingCacheIn computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
scheme. It supports data caching, page caching, fragment caching and dynamic content. The storage medium of caching can be changed. - Error handlingException handlingException handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of program execution....
and loggingData loggerA data logger is an electronic device that records data over time or in relation to location either with a built in instrument or sensor or via external instruments and sensors. Increasingly, but not entirely, they are based on a digital processor...
. Errors are handled and presented more nicely, and log messages can be categorized, filtered and routed to different destinations. - Security measures include cross-site scriptingCross-site scriptingCross-site scripting is a type of computer security vulnerability typically found in Web applications that enables attackers to inject client-side script into Web pages viewed by other users. A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same...
(XSS) prevention, cross-site request forgeryCross-site request forgeryCross-site request forgery, also known as a one-click attack or session riding and abbreviated as CSRF or XSRF, is a type of malicious exploit of a website whereby unauthorized commands are transmitted from a user that the website trusts...
(CSRF) prevention, cookieHTTP cookieA cookie, also known as an HTTP cookie, web cookie, or browser cookie, is used for an origin website to send state information to a user's browser and for the browser to return the state information to the origin site...
tampering prevention, etc. - Unit and functionality testing based on PHPUnitPHPUnitPHPUnit is a unit testing software framework for the programming language PHP . Created by Sebastian Bergmann, PHPUnit is one of the xUnit family of frameworks that originated with Kent Beck's SUnit. PHPUnit is hosted at GitHub .- Purpose :...
and Selenium. - Automatic code generation for the skeleton application, CRUD applications, etc.
- Code generated by Yii components and command line tools complies to the XHTMLXHTMLXHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....
standard. - Carefully designed to work well with third-party code. For example, it's possible to use code from PEARPearThe pear is any of several tree species of genus Pyrus and also the name of the pomaceous fruit of these trees. Several species of pear are valued by humans for their edible fruit, but the fruit of other species is small, hard, and astringent....
or Zend FrameworkZend FrameworkZend Framework is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License.-Licensing:...
in a Yii application.
Version history
Color | Meaning |
---|---|
Red | Old version; no longer supported |
Yellow | Old version; still supported |
Green | Current version |
Blue | Future version |
Version | Release | Release date | End of maintenance | Requirement |
---|---|---|---|---|
1.0 | 1.0 | December 3, 2008 | December 31, 2010 | PHP 5.1.0 or above |
1.0.1 | January 4, 2009 | |||
1.0.2 | February 1, 2009 | |||
1.0.3 | March 1, 2009 | |||
1.0.4 | April 5, 2009 | |||
1.0.5 | May 10, 2009 | |||
1.0.6 | June 7, 2009 | |||
1.0.7 | July 5, 2009 | |||
1.0.8 | August 9, 2009 | |||
1.0.9 | September 6, 2009 | |||
1.0.10 | October 18, 2009 | |||
1.0.11 | December 13, 2009 | |||
1.0.12 | March 14, 2010 | |||
1.1 | 1.1.0 | January 10, 2010 | December 31, 2012 or later | PHP 5.1.0 or above |
1.1.1 | March 14, 2010 | |||
1.1.2 | May 2, 2010 | |||
1.1.3 | July 4, 2010 | |||
1.1.4 | September 5, 2010 | |||
1.1.5 | November 14, 2010 | |||
1.1.6 | January 16, 2011 | |||
1.1.7 | March 27, 2011 | |||
1.1.8 | June 26, 2011 | |||
2.0 | TBD | TBD | TBD | PHP 5.3.0 or above |
Extensions
The Yii project has an extension repository consisting of user-contributed components.There was also an official extension library whose name was zii, which was then merged with core framework. It is bundled in every release since Yii version 1.1.0 and it includes additional behaviors and widgets, such as grids and jQuery UI
JQuery UI
jQuery UI is a JavaScript library that provides abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript library, that can be used to build interactive web applications. It was released in September 2007...
widgets.
Documentation
Yii comes with a collection of official documentation, such as a tutorial to develop a simple blog application, a guide that gives the description of every feature and a class reference which gives every detail about properties, methods and events.There's also a user-contributed documentation, most of which is available within the wiki on the official website.
Licensing
Yii is released under the New BSD License (3-clause license). This means that it's possible to use it for free to develop either open-source or proprietaryProprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
Web applications.
The text contained in the Official Yii Documentation is licensed to the public under the GNU Free Documentation License
GNU Free Documentation License
The GNU Free Documentation License is a copyleft license for free documentation, designed by the Free Software Foundation for the GNU Project. It is similar to the GNU General Public License, giving readers the rights to copy, redistribute, and modify a work and requires all copies and...
(GFDL). In general, the Yii documentation content can be copied, modified, and redistributed so long as the new version grants the same freedoms to others and acknowledges the authors of the Yii documentation article used.
The logo is licensed under a Creative Commons
Creative Commons
Creative Commons is a non-profit organization headquartered in Mountain View, California, United States devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons...
Attribution-No Derivative Works 3.0 Unported License.
External links
- Yii official website
- Yii Extensions
- Yii Documentation
- The Definitive Guide to Yii
- Yii Forum
- Yii on Google Code
- Russian Yii community
- YiiAnswers - a community-driven question-and-answer site for Yii
- Yii Radiio - a PHP podcast focusing on the Yii framework
- Ext4Yii - an ExtJS extension for Yii
See also
- Active record patternActive record patternIn software engineering, the active record pattern is an architectural pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his 2003 book Patterns of Enterprise Application Architecture...
- Comparison of Web application frameworksComparison of web application frameworksThis is a comparison of notable web application frameworks.-Perl:-PHP:-Java:-Python:-Ruby:-CFML :-ASP.NET:-Other:-ASP.NET:-C++:-CFML:-Python:-Java:-PHP:-Ruby:-Others:...
- Model–View–Controller
- Scaffold (programming)Scaffold (programming)Scaffolding is a meta-programming method of building database-backend software applications. It is a technique supported by some model-view-controller frameworks, in which the programmer may write a specification that describes how the application database may be used...