Symfony
Symfony is a web application framework written in PHP which 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.
Symfony should not be confused with Symphony CMS, the Open Source XML/XSLT content management system.
Goal
Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. It requires a few prerequisites for installation: 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.
Symfony has low performance overheads when dealing with an environment that supports a PHP accelerator. It should be noted however, that in typical shared hosting environments where a PHP accelerator is not available, Symfony suffers from a relatively high performance overhead.
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.
Technical
Symfony makes use of many common and well understood enterprise design patterns, such as Model-View-Controller. Symfony was heavily inspired by other Web Application Frameworks such as Ruby On Rails.
Symfony makes heavy use of existing PHP open source projects as part of the framework, such as:
Propel or Doctrine, as Object Relational Mapping layerCreole, 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 supportSpyc, a YAML parser (v 1.2)Pake, command-line helper (v 1.0)
It also includes a number of Open Source Javascript frameworks and libraries:
Prototype or jQuery, as javascript framework (v 1.0 and 1.1)script.aculo.us, for visual effects (v 1.0 and 1.1)Dynarch.com, for the DHTML Calendar (v 1.0 and 1.1)TinyMCE, for Rich Text Editing (v 1.0)FCKeditor, for Rich Text EditingTCPDF 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.
Sponsors
Symfony is sponsored by Sensio, a French web agency. The first name was Sensio Framework, 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, the name which depicts the theme and class name prefixes.
Real-world usage
Symfony is used by the open-source Q&A service Askeet and many more applications, including Delicious and the 20 million users of Yahoo! Bookmarks. As of February 2009, Dailymotion has ported part of its code to use Symfony, and is continuing the transition.
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 principals.
