Symfony is a web application framework written in PHP which follows the model-view-controller (MVC) paradigm. It provides an architecture, components and tools for developers to build complex web applications faster by minimizing repetitive coding tasks.
Symfony makes heavy use of existing PHP open source projects as part of the framework, such as:
- 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 parsed 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.