10.02.2013 Views

PHP Programming Language - OpenLibra

PHP Programming Language - OpenLibra

PHP Programming Language - OpenLibra

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Doctrine (<strong>PHP</strong>) 50<br />

back-ends, without requiring any code duplication.<br />

Writing queries explicitly however is not always necessary, as Doctrine performs joins and fetches related objects<br />

automatically. Small projects can be easily constructed without writing queries.<br />

Other notable features of Doctrine are:<br />

• support for hierarchical (tree-structured) data;<br />

• support for hooks (methods which can validate or modify database input and output) and event listeners to<br />

structure business-related logic;<br />

• column aggregation inheritance (similar objects can be stored in one database table, with one type-column<br />

specifying the subtype of the particular object - the correct subclass is always returned when a query is done);<br />

• a caching framework, making use of several backends such as memcached, SQLite or APC;<br />

• ACID transactions;<br />

• model behaviors (sluggable, timestampable, nested set, internationalization, audit log, search index);<br />

• database migrations;<br />

• a "compile" function to combine many <strong>PHP</strong> files of the framework into one, to avoid the performance hit usually<br />

incurred by including the many <strong>PHP</strong> files of a framework.<br />

History<br />

Doctrine was started by Konsta Vesterinen, also known as zYne-. The project's initial commit was made on April 13,<br />

2006 to the svn repository [2] . As the project became more mature, the adoption began to pick up. Before long, the<br />

community was active and development was receiving regular contributions, among others from the Google Summer<br />

of Code project.<br />

Doctrine 1.0.0 was released on September 1, 2008. [3]<br />

Influences<br />

Doctrine has been influenced by dozens of projects and many different people. The largest influences have been the<br />

Java ORM Hibernate and ActiveRecord from Ruby on Rails. Both of these ORM solutions have implemented a fully<br />

featured solution in the Java and Ruby languages. The purpose of the Doctrine project is to build an equally powerful<br />

solution for the <strong>PHP</strong> language.<br />

Community<br />

• There is an active IRC channel where users and developers of Doctrine hang out. The channel is on the freenode<br />

network (irc.freenode.net); the channel name is #doctrine. irc:/ / irc. freenode. net/ #doctrine<br />

• User mailing list: http:/ / groups. google. com/ group/ doctrine-user<br />

• Development mailing list: http:/ / groups. google. com/ group/ doctrine-dev<br />

• Commit log mailing list: http:/ / groups. google. com/ group/ doctrine-svn

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!