Symfony
Symfony default project |
|
| Developer(s) | Sensio Labs |
|---|---|
| Initial release | October 22, 2005 |
| Stable release | 2.0.10 / February 6, 2012 |
| Written in | PHP |
| Operating system | Cross-platform |
| Type | Web application framework |
| License | MIT License |
| Website | http://symfony.com/ |
Symfony is a web application framework written in PHP that follows the model–view–controller (MVC) paradigm. Released under the MIT license, Symfony is free software. The symfony-project.com website launched on October 18, 2005.[1]
Symfony should not be confused with Symphony CMS, the Open Source XML/XSLT content management system.
Contents |
[edit] Goal
Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. Installation has a few prerequisites: Unix, Linux, Mac OS or Microsoft Windows with a web server and PHP 5 installed. It is currently compatible with the following object-relational mappings: Propel and Doctrine.[2]
Symfony has low performance overheads when dealing with an environment that supports a PHP accelerator.
Symfony is aimed at building robust applications in an enterprise context, and aims to give developers full control over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match enterprise development guidelines, Symfony is bundled with additional tools to help developers test, debug and document projects.[citation needed]
[edit] Technical
Symfony makes use of many common and well understood design patterns, such as Model-View-Controller. Symfony was heavily inspired by other Web Application Frameworks such as Ruby On Rails, Django, and Spring.[3]
Symfony makes heavy use of existing PHP open-source projects as part of the framework, including:
- Propel or Doctrine, as Object Relational Mapping layer
- Creole, Database abstraction layer (v 1.0 and 1.1, with Propel)
- PDO Database abstraction layer (1.1, with Doctrine and Propel 1.3)
- PRADO, an event-driven PHP web application framework, for Internationalization support
- Pake, command-line helper (v 1.0)
- PHPUnit, unit tester
- Zend Framework, Zend_Logger and the Zend_Cache are used for logging and caching respectively
- Mojavi, an MVC framework
- Swift Mailer, a mail library
Symfony also makes use of its own components, which are freely available on the Symfony Components site for various other projects:
- Symfony YAML, a yaml parser based upon Spyc
- Symfony Event Dispacher
- Symfony Dependency Injector, a Dependency Injector
- Symfony Templating, a templating engine
- Symfony Request Handeler, a flexible micro-kernel
Using plugins, Symfony is able to support JavaScript frameworks and many more PHP projects, such as:
- Prototype or jQuery, as JavaScript framework
- script.aculo.us, for visual effects
- PHP Less, a CSS parser based upon Less
- TinyMCE or CKEditor, for Rich Text Editing
- TCPDF, PHP library for generating PDF documents
As of Symfony release 1.2, no JavaScript framework is selected as the default, leaving inclusion and implementation of a JavaScript library to the developers.
[edit] Sponsors
Symfony is sponsored by Sensio, a French web agency.[4] The first name was Sensio Framework,[5] and all classes were prefixed with sf. Later on when it was decided to launch it as open source framework, the brainstorming resulted in the name symfony (being renamed to Symfony from version 2 and on), the name which depicts[clarification needed] the theme and class name prefixes.[6]
[edit] Real-world usage
Symfony is used by the open-source Q&A service Askeet and many more applications, including Delicious[7] and the 20 million users of Yahoo! Bookmarks.[8] As of February 2009, Dailymotion.com has ported part of its code to use Symfony, and is continuing the transition.[9]. Symfony2 is used by OpenSky, a social shopping platform and the Symfony framework is also used by the massively multiplayer online browser game, eRepublik.
[edit] Development roadmap
The upcoming new release version of Symfony will include new features such as:
- A new form generation framework, first introduced in version 1.2
- A new admin generator (referred to as scaffolding in Rails) which makes use of the new form framework and is no longer implemented as a helper.
- Object relationship mapping declared in a separate plugin, rather than being integrated into the ORM
- Choice of ORM (Doctrine or Propel, or a combination of the two)
- Classes re-factored for looser coupling between objects, allowing for more user flexibility in using objects and fewer dependencies (similar in principle to the Zend Framework).
- Routing rules and route objects more closely follow REST design principles.
[edit] Releases
| Color | Meaning |
|---|---|
| Red | Release no longer supported |
| Green | Release still supported |
| Blue | Future release |
| Version | Release date | Support | PHP version | End of maintenance | Notes |
|---|---|---|---|---|---|
| 1.0 | January 2007 | 3 years | >= 5.0 | January 2010 | |
| 1.1 | June 2008 | 1 year | >= 5.1 | June 2009 | security-related patches will be applied until June 2010 |
| 1.2 | December 2008 | 1 year | >= 5.2 | November 2009 | |
| 1.3 | November 2009 | 1 year | >= 5.2.4 | November 2010 | |
| 1.4 | November 2009 | 3 years | >= 5.2.4 | January 2013 | 1.4 is identical to 1.3, but does not support the 1.3 deprecated features.[10] |
| 2.0 [11] | July 2011[12] | >= 5.3.2 | |||
| 2.1 [13] | More components will be part of the stable API. Planned for March 2012. | ||||
| 2.2 [14] | It is aimed to be the first 2.x LTS version |
[edit] See also
[edit] References
- ^ Symfony Web PHP Framework » Blog » Two years of symfony
- ^ The symfony and Doctrine book
- ^ http://symfony-reloaded.org/
- ^ Learn symfony: A Beginner's Tutorial
- ^ Symfony framework forum: General discussion => New symfony tagline brainstorming
- ^ Comments by Sensio Owner
- ^ Symfony Blog - Delicious Preview built with symfony
- ^ Symfony Blog - Yahoo! Bookmarks uses symfony
- ^ Symfony Blog - Dailymotion, powered by symfony
- ^ Symfony Blog - About symfony 1.3 and 1.4
- ^ Symfony blog - Why will Symfony 2.0 finally use PHP 5.3?
- ^ Symfony blog - Symfony2 release
- ^ Symfony developers - towards 2.1
- ^ Symfony developers - towards 2.1
[edit] Further reading
- Potencier, Fabien and Zaninotto, François. (2007). The Definitive Guide to symfony. Apress. ISBN 1-59059-786-9.
- Potencier, Fabien. (2009). Practical symfony (2009). Sensio Labs Books. Doctrine edition, ISBN 978-2-918390-06-0, Propel edition, 978-2918390077, and Spanish edition available on lulu.com.
- Fabien Potencier, Hugo Hamon: Symfony, Mieux développer en PHP avec symfony 1.2 et Doctrine, Eyrolles 2009, ISBN 978-2-212-12494-1, French
- Tim Bowler, Wojciech Bancer (2009). Symfony 1.3 Web Application Development, Packt. ISBN 978-1-84719-456-5.
[edit] External links
- Symfony Project Homepage
- Symfony 1.4 Documentation
- Symfony lessons(Russian)
- Symfony2 Homepage
- Symfony2 News Updates
- Symfony Blog Developer
- Symfonians.net - A Community of Projects Using the Symfony Framework
- SymfonyLab.com - Symfony tips and tricks, free plugins
- Mobicules.com - CodeIgniter vs Symfony - quick roundup
- Symfony at the Open Directory Project
|
||||||||||||||||||||||||||||||||||||||