Yii
Encyclopedia
Yii is an open source
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 Objects
    Data Access Object
    In 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 Record
    Active record pattern
    In 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 jQuery
    JQuery
    jQuery 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...

    .
  • Form
    Form (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 validation
    Data validation
    In 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...

    .
  • Ajax
    Ajax (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 authentication
    Authentication
    Authentication is the act of confirming the truth of an attribute of a datum or entity...

     support. It also supports authorization
    Authorization
    Authorization 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 control
    Role-Based Access Control
    In 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 WSDL
    Web Services Description Language
    The 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 service
    Web service
    A 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 localization
    Internationalization and localization
    In 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 caching
    Cache
    In 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 handling
    Exception handling
    Exception 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 logging
    Data logger
    A 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 scripting
    Cross-site scripting
    Cross-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 forgery
    Cross-site request forgery
    Cross-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, cookie
    HTTP cookie
    A 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 PHPUnit
    PHPUnit
    PHPUnit 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 XHTML
    XHTML
    XHTML 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 PEAR
    Pear
    The 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 Framework
    Zend Framework
    Zend 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 proprietary
Proprietary 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


See also

  • Active record pattern
    Active record pattern
    In 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 frameworks
    Comparison of web application frameworks
    This 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...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK