Symfony
Symfony
|
|
---|---|
Basic data
|
|
developer | SensioLabs |
Publishing year | October 22, 2005 |
Current version |
5.1.3 ( July 24, 2020 ) |
operating system | cross-platform |
programming language | PHP |
category | Web framework |
License | MIT license |
German speaking | No |
symfony.com |
Symfony is a web framework written in PHP and a set of reusable PHP components / libraries. Symfony was released on October 18, 2005 under the MIT license.
History and philosophy
Symfony has been developed since 2005 under the leadership of Fabien Potencier . It was created parallel to the increasing popularity of Ruby on Rails and the desire for a similar MVC framework based on PHP. Symfony tries to keep the configuration to a minimum. If no configuration is specified for this, the assignment of e.g. B. Models for database tables using the same names in singular and plural ( convention before configuration ). The console application enables simple websites to be developed using rapid application development .
Version 2 was released in July 2011. It is a new implementation that is completely different from version 1. There is no easy way to migrate applications from version 1 to version 2. The framework now consists of modules, so-called bundles , which can run completely independently of one another, but can be seamlessly integrated into the framework process. By using a dependency injection container, the entire application has a modular structure. This makes it easy to test and expand. In addition, namespaces supported. So Symfony 2 requires PHP 5.3 or higher.
Bundles
Bundles are separate units of a web application. A fictitious guest book bundle therefore contains all the data required for the guest book to run completely. This includes not only the required application logic , but also database queries and resources (graphics, scripts, etc.). Developers can publish developed bundles so that other Symfony 2 users can integrate these application units without direct code changes.
features
- Configuration with YAML , Annotations , XML or PHP
- Database access via ORM layer
- Scaffolding of CRUD interfaces
- Request dispatcher and dynamic routing for clean URLs
- Templates based on Twig or native PHP syntax
- Helpers simplify the work in the templates ( Ajax , JavaScript , forms, etc.)
- Multilingualism and I18N support
- Data validation via constraints
- Filtering malicious code fed in via forms
- Components for session management, request handling and security
- Comprehensive caching of the output
- Plug-in with bundles
layers
The Model-View-Controller design pattern is implemented by Symfony as follows:
model
There are two plugins to choose from ( Doctrine and Propel ) to save the objects . These are libraries for object-relational mapping that store PHP objects in a relational database .
The relationships between different models are determined by so-called associations .
From version 1.1 of Symfony, the previous standard framework Propel has been outsourced to a plug-in and is no longer an integral part of the framework.
View
A view is understood to be the presentation layer of the application. In the view layer, with the help of the controller, content is provided that often includes templates for the output. Any PHP code can be embedded in a template. Symfony brings so-called helpers , which can create or format certain outputs in templates, such as links or forms. For recurring expenses can be seen on partials resort which within the templates iterated are.
Controller
The controller formulates the business logic and provides interfaces in the form of methods that interact with the logic. As in many other frameworks, these interfaces / methods are also called actions . Parameters for the methods can also be passed. The structure of the URLs can be flexibly adapted with the help of routes.
Versions
version | Publication date | Support | Support until | PHP version | Remarks |
---|---|---|---|---|---|
1.0 | January 2007 | 3 years | January 2010 | > = 5.0 | |
1.1 | June 2008 | 1 year | June 2009 | > = 5.1 | Security-relevant updates by June 2010 |
1.2 | December 2008 | 15 months | February 2010 | > = 5.2 | |
1.3 | November 2009 | 1 year | November 2010 | > = 5.2 | Like 1.4, but with a compatibility level for existing Symfony projects |
1.4 | November 2009 | 3 years | November 2012 | > = 5.2 | |
2.0 | July 2011 | 20 months | March 2013 | > = 5.3.2 | Switch to PHP 5.3 |
2.1 | September 2012 | 9 months | May 2013 | > = 5.3.3 | Revised form component, use of Composer |
2.2 | March 2013 | 8 months | November 2013 | > = 5.3.3 | Revised form component, use of Composer |
2.3 | May 2013 | 3 years | May 2016 | > = 5.3.3 | First LTS (Long Term Support) version |
2.4 | November 2013 | 8 months | July 2014 | > = 5.3.3 | |
2.5 | May 2014 | 8 months | January 2015 | > = 5.3.3 | |
2.6 | November 2014 | 8 months | July 2015 | > = 5.3.3 | |
2.7 | May 2015 | 3 years | May 2018 | > = 5.3.9 | Second LTS (Long Term Support) version |
2.8 | November 2015 | 3 years | November 2018 | > = 5.3.9 | LTS (Long Term Support) version |
3.0 | November 2015 | 8 months | July 2016 | > = 5.5 | |
3.1 | May 2016 | 8 months | January 2017 | > = 5.5 | PSR-6 compatible cache component, LDAP support |
3.2 | November 2016 | 8 months | July 2017 | > = 5.5.9 | |
3.3 | March 2017 | 8 months | January 2018 | > = 5.5.9 | |
3.4 | November 2017 | 3 years | November 2020 | > = 5.5.9 | LTS (Long Term Support) version |
4.0 | November 2017 | 8 months | July 2018 | > = 7.1.3 | |
4.1 | May 2018 | 8 months | January 2019 | > = 7.1.3 | |
4.2 | November 2018 | 8 months | July 2019 | > = 7.1.3 | Security updates only until January 2020 |
4.3 | May 2019 | 8 months | January 2020 | > = 7.1.3 | |
4.4 | November 2019 | 3 years | November 2022 | > = 7.1.3 | LTS (Long Term Support) version |
5.0 | November 2019 | 8 months | July 2020 | > = 7.2.5 | |
5.1 | May 2020 | 8 months | January 2021 | > = 7.2.5 | |
5.2 | November 2020 | 8 months | July 2021 | > = 7.2.5 | |
Legend:
Older version; no longer supported
Older version; still supported
Current version
Future version
|
More current information can be found on the website symfony.com/releases.
use
- Drupal from version 8
- eZ Publish from version 5
- Silex (framework)
- phpBB from version 3.1
- Contao from version 4
- Shopware from version 5
- Akeneo from version 1
- Magento version 2.0 or higher
- orocrm from version 1
- Pimcore from version 5
- Sylius from version 1
- Zikula from version 1.3
literature
- Francois Zaninotto, Fabien Potencier: The Definitive Guide to symfony , Apress 2007, ISBN 1-59059-786-9 , also available online , English
- Timo Haberkern: The Symfony Framework ,entwickler.press 2008, ISBN 3-939084-14-X , German
- Fabien Potencier: Practical symfony 1.2 for Doctrine, 2009, ISBN 978-2-918390-06-0 , English
- Fabien Potencier: Practical symfony 1.2 for Propel, 2009, ISBN 978-2-918390-07-7 , English
- Fabien Potencier: The symfony 1.2 Reference Guide, 2009, ISBN 978-2-918390-05-3 , English
- 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: Symfony 1.3 Web Application Development. 1st edition. Packt Publishing Ltd., Birmingham September 24, 2009, ISBN 1-84719-456-7 , p. 228. (English)
Web links
- Official website Symfony (English)
- Symfony releases
Individual evidence
- ↑ Release 5.1.3 . July 24, 2020 (accessed July 24, 2020).
- ↑ The symfony Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on July 18, 2018).
- ↑ The symfony Open Source Project on Open Hub: Licenses Page . In: Open Hub . (accessed on July 18, 2018).
- ↑ Fabien Potencier: What is Symfony2? Retrieved June 5, 2012 .
- ↑ symfony-project.org: Symfony versions. Download and Install. Retrieved November 2, 2011 .
- ↑ symfony-project.org/blog: Why will Symfony 2.0 finally use PHP 5.3? Retrieved November 2, 2011 .
- ↑ a b getcomposer.org: Composer. Retrieved July 24, 2012 .
- ↑ a b symfony.com: The Release Process. Retrieved February 2, 2016 .
- ↑ Fabien Potencier: Symfony 3.0: The roadmap. Retrieved October 17, 2015 .
- ↑ Fabien Potencier: Symfony 3.1.0 released. Retrieved July 1, 2016 .
- ↑ Fabien Potencier: Symfony2 meets Drupal 8. Retrieved on August 28, 2013 .
- ↑ eZ Systems / Jérôme Vieilledent: eZ Publish 5 from a technical point of view. Retrieved June 24, 2013 .
- ↑ Fabien Potencier: Silex - The PHP micro-framework based on the Symfony2 Components. Retrieved February 14, 2014 .
- ↑ phpBB.com: phpBB 3.1 Ascraeus - Developers - Symfony Components. Retrieved October 26, 2014 .
- ↑ Leo Feyer: Contao 4.0.0-beta1 available. Retrieved November 25, 2015 .
- ↑ a b c basecom.de: SensioLabs partner. (No longer available online.) Archived from the original on February 22, 2016 ; accessed on February 22, 2016 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ OroCRM (Projects using Symfony). Retrieved May 29, 2016 .
- ↑ SensioLabs: Pimcore (Projects using Symfony). Retrieved January 24, 2018 .
- ↑ Sylius: Built On The Shoulders Of Giants open source. Retrieved January 2, 2020 .
- ^ Zikula homepage. Retrieved February 3, 2020 .