Jump to content

Symfony: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
 
(13 intermediate revisions by 9 users not shown)
Line 24: Line 24:
}}
}}


'''Symfony''' is a [[Free and open-source software|free and open-source]] [[PHP]] [[web application framework]] and a set of reusable PHP component libraries. It was published as [[free software]] on October 18, 2005, and released under the [[MIT license]].
'''Symfony''' is a [[Free and open-source software|free and open-source]] [[PHP]] [[web application framework]] and a set of reusable PHP component libraries. It was published as [[free software]] on October 18, 2005, and released under the [[MIT License]].


== Goal ==
== Goal ==
Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. It's also 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.<ref>{{Cite web|url=https://symfony.com/explained-to-a-developer|title=Symfony explained to a developer}}</ref> To match enterprise development guidelines, Symfony is bundled with additional tools to help developers test, debug and document projects.<ref>{{Cite web|url=https://symfony.com/doc/current/profiler.html|title=Profiler - Symfony}}</ref>
Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. It's also aimed at building robust applications in an enterprise context, and aims to give developers full control over the configuration: from the directory structure to third-party libraries, almost everything can be customized.<ref>{{Cite web|url=https://symfony.com/explained-to-a-developer|title=Symfony explained to a developer}}</ref> To match enterprise development guidelines, Symfony is bundled with additional tools to help developers test, debug and document projects.<ref>{{Cite web|url=https://symfony.com/doc/current/profiler.html|title=Profiler - Symfony}}</ref>


Symfony has a low performance overhead used with a bytecode cache.
Symfony has a low performance overhead used with a bytecode cache.
Line 35: Line 35:


It makes heavy use of existing PHP open-source projects as part of the framework, including:
It makes heavy use of existing PHP open-source projects as part of the framework, including:
* [[PHP#Development and community|PDO]] [[database abstraction layer]] (1.1, with [[Doctrine (PHP)|Doctrine]] and Propel 1.3)
* [[Propel (PHP)|Propel]] or [[Doctrine (PHP)|Doctrine]] as [[object-relational mapping]] layers<ref>[http://www.symfony-project.org/doctrine/1_2/en/01-Getting-Started The symfony and Doctrine book]</ref>
* [[PHP#Development and community|PDO]] [[database abstraction layer]] (1.1, with [[Doctrine (PHP)|Doctrine]] and [[Propel (PHP)|Propel 1.3]])
* [[PHPUnit]], a unit testing framework
* [[PHPUnit]], a unit testing framework
* [[Twig (template engine)|Twig]], a templating engine
* [[Twig (template engine)|Twig]], a templating engine
Line 57: Line 56:
* [[Drupal]] 8, [[phpBB]] and a number of other large applications have incorporated components of Symfony.<ref>[http://symfony.com/projects/drupal Drupal (Projects using Symfony)]. Retrieved on 2015-12-01.</ref><ref>{{cite web |url=http://symfony.com/projects |title = Projects using Symfony Components}}</ref>
* [[Drupal]] 8, [[phpBB]] and a number of other large applications have incorporated components of Symfony.<ref>[http://symfony.com/projects/drupal Drupal (Projects using Symfony)]. Retrieved on 2015-12-01.</ref><ref>{{cite web |url=http://symfony.com/projects |title = Projects using Symfony Components}}</ref>
* Symfony is also used by Meetic, one of the largest online dating platforms in the world, on most of its websites for implementing its business logic in the backend.<ref>{{cite web |url=http://www.slideshare.net/meeticTech/meetic-backend-mutation-with-symfony |title = Meetic Backend Mutation With Symfony}}</ref>
* Symfony is also used by Meetic, one of the largest online dating platforms in the world, on most of its websites for implementing its business logic in the backend.<ref>{{cite web |url=http://www.slideshare.net/meeticTech/meetic-backend-mutation-with-symfony |title = Meetic Backend Mutation With Symfony}}</ref>
* Symfony components are also used in other web application frameworks including [[Laravel]], which is another [[full-stack framework]], and [[Silex (web framework)|Silex]], which is a microframework.<ref>[http://symfony.com/projects Projects using Symfony]</ref>
* Symfony components are also used in other web application frameworks including [[Laravel]], which is another [[Web framework|full-stack framework]], and Silex, which is a microframework.<ref>[http://symfony.com/projects Projects using Symfony]</ref>
<!-- * As of February 12, 2013 the wiki-database video game website GiantBomb.com converted from Django to Symfony following an acquisition.-->
<!-- * As of February 12, 2013 the wiki-database video game website GiantBomb.com converted from Django to Symfony following an acquisition.-->
* [[Vogue Paris]]'s website is also built on the Symfony framework<ref>{{cite web |title=Symfony Showcase: Vogue France |url=http://symfony.com/showcase/67 |url-status=dead| archive-url=https://web.archive.org/web/20150926132939/http://symfony.com/showcase/67 |archive-date=2015-09-26}}</ref>
* [[Vogue Paris]]'s website is also built on the Symfony framework<ref>{{cite web |title=Symfony Showcase: Vogue France |url=http://symfony.com/showcase/67 |url-status=dead| archive-url=https://web.archive.org/web/20150926132939/http://symfony.com/showcase/67 |archive-date=2015-09-26}}</ref>
Line 69: Line 68:
The standard version of Symfony is [[Software maintenance|maintained]] for eight months, whereas [[long-term support]] (LTS) versions are supported for three years. A new LTS release is published [[wikt:biennially|biennially]].<ref>[https://github.com/symfony/symfony-docs/blob/4cd6dc2825924c9569621bf749f168a7ba2a235d/contributing/community/releases.rst symfony-docs/contributing/community/releases.rst at 4cd6dc2825924c9569621bf749f168a7ba2a235d · symfony/symfony-docs · GitHub]. Github.com. Retrieved on 2016-03-16.</ref>
The standard version of Symfony is [[Software maintenance|maintained]] for eight months, whereas [[long-term support]] (LTS) versions are supported for three years. A new LTS release is published [[wikt:biennially|biennially]].<ref>[https://github.com/symfony/symfony-docs/blob/4cd6dc2825924c9569621bf749f168a7ba2a235d/contributing/community/releases.rst symfony-docs/contributing/community/releases.rst at 4cd6dc2825924c9569621bf749f168a7ba2a235d · symfony/symfony-docs · GitHub]. Github.com. Retrieved on 2016-03-16.</ref>


The current LTS release is version 5.4 as per https://symfony.com/releases/5.4.
The current LTS release is version 6.4 as per https://symfony.com/releases/6.4.


{| class="wikitable"
{| class="wikitable"
Line 303: Line 302:
| 6.0
| 6.0
| style="text-align:right;"| November 2021
| style="text-align:right;"| November 2021
| style="background:#a0e75a;"| Eight months
| style="background:salmon"| Eight months
| style="text-align:right;"| ≥ 8.0.2
| style="text-align:right;"| ≥ 8.0.2
| style="text-align:right;"| January 2023
| style="text-align:right;"| January 2023
| <ref>{{Cite web|title=Symfony 6.0 release|url=https://symfony.com/releases/6.0|access-date=2021-07-16|website=symfony.com|language=en}}</ref>Maintenance period extended by six months.<ref name="s61">{{Cite web |title=Symfony 6.1 will require PHP 8.1 (Symfony Blog) |url=https://symfony.com/blog/symfony-6-1-will-require-php-8-1 |access-date=2022-02-25 |website=symfony.com |language=en}}</ref>
| <ref>{{Cite web|title=Symfony 6.0 release|url=https://symfony.com/releases/6.0|access-date=2021-07-16|website=symfony.com|language=en}}</ref> Maintenance period extended by six months.<ref name="s61">{{Cite web |title=Symfony 6.1 will require PHP 8.1 (Symfony Blog) |url=https://symfony.com/blog/symfony-6-1-will-require-php-8-1 |access-date=2022-02-25 |website=symfony.com |language=en}}</ref>
|-
|-
| 6.1
| 6.1
| style="text-align:right;"| May 2022
| style="text-align:right;"| May 2022
| style="background:#a0e75a;"| Eight months
| style="background:salmon"| Eight months
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| January 2023
| style="text-align:right;"| January 2023
Line 317: Line 316:
|6.2
|6.2
| style="text-align:right;"| November 2022
| style="text-align:right;"| November 2022
| style="background:#a0e75a;"| Eight months
| style="background:salmon"| Eight months
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| July 2023
| style="text-align:right;"| July 2023
Line 324: Line 323:
|6.3
|6.3
| style="text-align:right;"| May 2023
| style="text-align:right;"| May 2023
| style="background:skyblue;"|Eight months
| style="background:salmon;"|Eight months
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| January 2024
| style="text-align:right;"| January 2024
Line 331: Line 330:
|6.4
|6.4
| style="text-align:right;"| November 2023
| style="text-align:right;"| November 2023
| style="background:skyblue;"|Three years
| style="background:#a0e75a;"|Three years
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| ≥ 8.1
| style="text-align:right;"| November 2027
| style="text-align:right;"| November 2027
| LTS release.<ref>{{Cite web|title=Symfony 6.4 release|url=https://symfony.com/releases/6.4|access-date=2022-12-29|website=symfony.com|language=en}}
| LTS release.<ref>{{Cite web|title=Symfony 6.4 release|url=https://symfony.com/releases/6.4|access-date=2022-12-29|website=symfony.com|language=en}}
</ref>
|-
|7.0
| style="text-align:right;"| November 2023
| style="background:#a0e75a;"|Eight months
| style="text-align:right;"| ≥ 8.2
| style="text-align:right;"| July 2024
| <ref>{{Cite web|title=Symfony 7.0 release|url=https://symfony.com/releases/7.0|access-date=2023-12-18|website=symfony.com|language=en}}
</ref>
|-
|7.1
| style="text-align:right;"| May 2024
| style="background:skyblue;"|Eight months
| style="text-align:right;"| ≥ 8.2
| style="text-align:right;"| January 2025
| <ref>{{Cite web|title=Symfony 7.1 release|url=https://symfony.com/releases/7.1|access-date=2023-12-18|website=symfony.com|language=en}}
</ref>
</ref>
|}
|}
Line 348: Line 363:


==Further reading==
==Further reading==
*Potencier, Fabien. (2022). ''Symfony 6: The Fast Track'' [[Leanpub]].
*Potencier, Fabien. (2022). ''[https://leanpub.com/symfony6-the-fast-track Symfony 6: The Fast Track]''. [[Leanpub]].
*Potencier, Fabien and Zaninotto, François. (2007). ''The Definitive Guide to symfony.'' [[Apress]]. {{ISBN|1-59059-786-9}}.
*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 (PHP)|Doctrine]] edition, {{ISBN|978-2-918390-06-0}}, [[Propel (PHP)|Propel]] edition, {{not a typo|978-2918390077}}, and Spanish edition available on lulu.com.
*Potencier, Fabien. (2009). ''Practical symfony'' (2009). Sensio Labs Books. [[Doctrine (PHP)|Doctrine]] edition, {{ISBN|978-2-918390-06-0}}, Propel edition, {{not a typo|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
*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}}.
*Tim Bowler, Wojciech Bancer (2009). ''Symfony 1.3 Web Application Development'', [[Packt]]. {{ISBN|978-1-84719-456-5}}.

Latest revision as of 09:02, 1 August 2024

Symfony
Original author(s)Fabien Potencier
Developer(s)Symfony community
Initial release22 October 2005; 18 years ago (2005-10-22)
Stable release
7.0.6[1] / 2024-04-03[±]
RepositorySymfony Repository
Written inPHP
Operating systemCross-platform
TypeWeb application framework
LicenseMIT License
Websitesymfony.com

Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.

Goal

[edit]

Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. It's also aimed at building robust applications in an enterprise context, and aims to give developers full control over the configuration: from the directory structure to third-party libraries, almost everything can be customized.[2] To match enterprise development guidelines, Symfony is bundled with additional tools to help developers test, debug and document projects.[3]

Symfony has a low performance overhead used with a bytecode cache.

Technical

[edit]

Symfony was heavily inspired by the Spring Framework.[4][5]

It makes heavy use of existing PHP open-source projects as part of the framework, including:

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 Dispatcher
  • Symfony Dependency Injector, a dependency injector
  • Symfony Templating, a templating engine

Sponsors

[edit]

Symfony is sponsored by SensioLabs, a French software developer and professional services provider.[6] The first name was Sensio Framework,[7] and all classes were therefore 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), which matches the existing theme and class name prefixes.[8]

Real-world usage

[edit]
  • Symfony is used by the open-source Q&A service Askeet and many more applications, including Delicious website.[9]
  • At one time it was used for 20 million users of Yahoo! Bookmarks.[10]
  • As of February 2009, Dailymotion.com has ported part of its code to use Symfony, and is continuing the transition.[11]
  • Symfony is used by OpenSky, a social shopping platform, and the Symfony framework is also used by the massively multiplayer online browser game eRepublik, and by the content management framework eZ Publish in version 5.[12]
  • Drupal 8, phpBB and a number of other large applications have incorporated components of Symfony.[13][14]
  • Symfony is also used by Meetic, one of the largest online dating platforms in the world, on most of its websites for implementing its business logic in the backend.[15]
  • Symfony components are also used in other web application frameworks including Laravel, which is another full-stack framework, and Silex, which is a microframework.[16]
  • Vogue Paris's website is also built on the Symfony framework[17]

Symfony's own website has a comprehensive list of projects using Symfony and a showcase of websites built with Symfony.[18]

Releases

[edit]

Symfony manages its releases through a time-based model; a new Symfony release comes out every six months: one in May and one in November. This release process has been adopted as of Symfony 2.2, and all the "rules" explained in this document must be strictly followed as of Symfony 2.4.

The standard version of Symfony is maintained for eight months, whereas long-term support (LTS) versions are supported for three years. A new LTS release is published biennially.[19]

The current LTS release is version 6.4 as per https://symfony.com/releases/6.4.

Color Meaning
Red Release no longer supported
Amber security fixes only
Green Release still supported
Blue Future release
Version Release date Support PHP version End of maintenance Notes
1.0 January 2007 Three years ≥ 5.0 January 2010
1.1 June 2008 One year ≥ 5.1 June 2009 Security-related patches were applied until June 2010
1.2 December 2008 One year ≥ 5.2 November 2009
1.3 November 2009 One year ≥ 5.2.4 November 2010
1.4 November 2009 Three years ≥ 5.2.4 November 2012 LTS version. 1.4 is identical to 1.3, but it does not support the 1.3 deprecated features.[20]
2.0[21] July 2011[22] ≥ 5.3.2 March 2013 Last 2.0.x release was Symfony 2.0.25[23]
2.1[24] September 2012 Eight months ≥ 5.3.3 June 2013 More components are part of the stable API.
2.2 March 2013 Eight months ≥ 5.3.3 November 2013 Various new features.[25]
2.3 June 2013 Three years ≥ 5.3.3 May 2016 The first LTS release, only three months development, normally six months.[26]
2.4 November 2013 Eight months ≥ 5.3.3 July 2014 The first 2.x branch release with complete backwards compatibility.[27]
2.5 May 2014 Eight months ≥ 5.3.3 January 2015
2.6 November 2014 Eight months ≥ 5.3.3 July 2015
2.7 May 2015 Three years ≥ 5.3.9 May 2018 LTS release.
2.8 November 2015 Three years ≥ 5.3.9 November 2018 LTS release.
3.0 November 2015 Eight months ≥ 5.5.9 July 2016
3.1 May 2016 Eight months ≥ 5.5.9 January 2017
3.2 November 2016 Eight months ≥ 5.5.9 July 2017
3.3 June 2017 Eight months ≥ 5.5.9 January 2018
3.4 November 2017 Three years ≥ 5.5.9 November 2020 LTS release.
4.0 November 2017 Eight months ≥ 7.1.3[28] July 2018 Dropping support for HHVM[29]
4.1 May 2018 Eight months ≥ 7.1.3 January 2019
4.2 November 2018 Eight months ≥ 7.1.3 July 2019
4.3 May 2019 Eight months ≥ 7.1.3 January 2020
4.4 November 2019 Three years ≥ 7.1.3 November 2022 LTS release.[30]
5.0 November 2019 Eight months ≥ 7.2.5 July 2020 Live released by Fabien Potencier during his Keynote at SymfonyCon Amsterdam (11/21/19).[31]
5.1 May 2020 Eight months ≥ 7.2.5 January 2021
5.2 November 2020 Eight months ≥ 7.2.5 July 2021 [32]
5.3 May 2021 Eight months ≥ 7.2.5 January 2022 Stable release.[33]
5.4 November 2021 Three years ≥ 7.2.5 November 2024 LTS release.[34]
6.0 November 2021 Eight months ≥ 8.0.2 January 2023 [35] Maintenance period extended by six months.[36]
6.1 May 2022 Eight months ≥ 8.1 January 2023 [37]
6.2 November 2022 Eight months ≥ 8.1 July 2023 [38]
6.3 May 2023 Eight months ≥ 8.1 January 2024 [39]
6.4 November 2023 Three years ≥ 8.1 November 2027 LTS release.[40]
7.0 November 2023 Eight months ≥ 8.2 July 2024 [41]
7.1 May 2024 Eight months ≥ 8.2 January 2025 [42]

See also

[edit]

References

[edit]
  1. ^ Potencier, Fabien (2024-04-03). "Symfony 7.0.6 released". Blog. symfony.com. Retrieved 2024-04-13.
  2. ^ "Symfony explained to a developer".
  3. ^ "Profiler - Symfony".
  4. ^ High Performance PHP Framework for Web Development - Symfony. Symfony-reloaded.org. Retrieved on 2014-05-30.
  5. ^ "Open-Source cross-pollination (Symfony Blog)". symfony.com. Retrieved 2020-06-06.
  6. ^ Learn symfony: A Beginner's Tutorial
  7. ^ Symfony framework forum: General discussion => New symfony tagline brainstorming Archived 2008-12-22 at the Wayback Machine
  8. ^ Comments by Sensio Owner Archived 2008-12-22 at the Wayback Machine
  9. ^ Symfony Blog - Delicious Preview built with symfony
  10. ^ Symfony Blog - Yahoo! Bookmarks uses symfony
  11. ^ Symfony Blog - Dailymotion, powered by symfony
  12. ^ Symfony2 meets eZ Publish 5. Symfony (2012-07-02). Retrieved on 2014-05-30.
  13. ^ Drupal (Projects using Symfony). Retrieved on 2015-12-01.
  14. ^ "Projects using Symfony Components".
  15. ^ "Meetic Backend Mutation With Symfony".
  16. ^ Projects using Symfony
  17. ^ "Symfony Showcase: Vogue France". Archived from the original on 2015-09-26.
  18. ^ "E-commerce projects using Symfony". Symfony.com.
  19. ^ symfony-docs/contributing/community/releases.rst at 4cd6dc2825924c9569621bf749f168a7ba2a235d · symfony/symfony-docs · GitHub. Github.com. Retrieved on 2016-03-16.
  20. ^ Symfony Blog - About symfony 1.3 and 1.4
  21. ^ Symfony blog - Why will Symfony 2.0 finally use PHP 5.3?
  22. ^ Symfony blog - Symfony2 release
  23. ^ 2.0.23 released. Symfony (2013-03-20). Retrieved on 2014-05-30.
  24. ^ Symfony 2.1.0 released
  25. ^ 2.2.0. Symfony (2013-03-01). Retrieved on 2014-05-30.
  26. ^ 2.3.0, the first LTS, is now available. Symfony (2013-06-03). Retrieved on 2014-05-30.
  27. ^ 2.4.0 released. Symfony (2013-12-03). Retrieved on 2014-05-30.
  28. ^ Bump minimum version to PHP 7.1 for Symfony 4
  29. ^ Symfony 4: End of HHVM support
  30. ^ "Symfony 4.4 release". symfony.com. Retrieved 2019-11-27.
  31. ^ "Schedule | SymfonyCon Amsterdam 2019". amsterdam2019.symfony.com. Retrieved 2019-11-27.
  32. ^ "Symfony 5.2 release". symfony.com. Retrieved 2020-06-28.
  33. ^ "Symfony 5.3 release". symfony.com. Retrieved 2021-07-16.
  34. ^ "Symfony 5.4 release". symfony.com. Retrieved 2021-07-16.
  35. ^ "Symfony 6.0 release". symfony.com. Retrieved 2021-07-16.
  36. ^ "Symfony 6.1 will require PHP 8.1 (Symfony Blog)". symfony.com. Retrieved 2022-02-25.
  37. ^ "Symfony 6.1 release". symfony.com. Retrieved 2022-12-29.
  38. ^ "Symfony 6.2 release". symfony.com. Retrieved 2022-12-29.
  39. ^ "Symfony 6.3 release". symfony.com. Retrieved 2022-12-29.
  40. ^ "Symfony 6.4 release". symfony.com. Retrieved 2022-12-29.
  41. ^ "Symfony 7.0 release". symfony.com. Retrieved 2023-12-18.
  42. ^ "Symfony 7.1 release". symfony.com. Retrieved 2023-12-18.

Further reading

[edit]
[edit]