PageSourceSearch

https://symfony.com/doc/current/contributing/index.html

html symfony.com collected 2026-09-24 06:39:43 UTC 145,397 bytes, 1,641 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3    <head>
4        <meta charset="UTF-8" />
5        <meta http-equiv="X-UA-Compatible" content="IE=edge">
6        <meta name="viewport" content="width=device-width, initial-scale=1">
7        <meta name="robots" content="index, follow, all" />
8        <meta name="Author" content="Symfony" />
9        <meta name="color-scheme" content="light dark">
10        <meta name="view-transition" content="same-origin" />
11                    <meta name="description" content="Symfony is an open source, community-driven project, and there are many ways to contribute:      Report a Bug you found (no setup needed) Review and Triage issues and pull requests to help move them f…">
12                
13        <link rel="preconnect" href="https://connect.symfony.com">
14
15                <title>Contributing (Symfony Docs)</title>
16
17                    <link rel="canonical" href="https://symfony.com/doc/current/contributing/index.html">
18        
19        <link rel="search" type="application/opensearchdescription+xml" href="https://symfony.com/opensearch/documentation.xml" title="Symfony documentation">
20
21        
22                        
23<link rel="stylesheet" href="/assets/styles/layers-SahjXFx.css">
24<link rel="stylesheet" href="/assets/styles/color-palette-slSz90E.css">
25<link rel="stylesheet" href="/assets/styles/design-tokens-4eojbL7.css">
26<link rel="stylesheet" href="/assets/styles/app-aCFWGZ1.css">
27<link rel="stylesheet" href="/assets/styles/ui-components-2EpSsTL.css">
28<link rel="stylesheet" href="/assets/@symfony/ux-live-component/live.min-WRZuO3t.css">
29<link rel="stylesheet" href="/assets/styles/search-KloepOx.css">
30<link rel="stylesheet" href="/assets/styles/doc-de9HMsW.css">
31<link rel="stylesheet" href="/assets/styles/_webfont-jetbrains-mono-Ha-jryu.css">
32<link rel="stylesheet" href="/assets/styles/code-Lz5qS8Z.css">
33<link rel="stylesheet" href="/assets/styles/component-terminal-m6uQjoo.css">
34<script type="importmap" data-turbo-track="reload">
35{
36    "imports": {
37        "app": "/assets/app-uFThPXO.js",
38        "/assets/styles/layers.css": "data:application/javascript,",
39        "bootstrap/js/src/offcanvas": "/assets/vendor/bootstrap/js/src/offcanvas-tOYGjL4.js",
40        "/assets/styles/color-palette.css": "data:application/javascript,",
41        "/assets/styles/design-tokens.css": "data:application/javascript,",
42        "/assets/styles/app.css": "data:application/javascript,",
43        "/assets/styles/ui-components.css": "data:application/javascript,",
44        "/assets/stimulus.js": "/assets/stimulus-NEEjnKA.js",
45        "@symfony/stimulus-bundle": "/assets/@symfony/stimulus-bundle/loader-IOzBDLu.js",
46        "@hotwired/stimulus": "/assets/vendor/@hotwired/stimulus/stimulus.index-ryewcoo.js",
47        "/assets/@symfony/stimulus-bundle/controllers.js": "/assets/@symfony/stimulus-bundle/controllers-zOfc2Bd.js",
48        "/assets/@symfony/ux-live-component/live_controller.js": "/assets/@symfony/ux-live-component/live_controller-az9B8an.js",
49        "/assets/@symfony/ux-live-component/live.min.css": "data:application/javascript,",
50        "/assets/controllers/download_chart_controller.js": "/assets/controllers/download_chart_controller-c-oBQZq.js",
51        "/assets/controllers/eventsmap_controller.js": "/assets/controllers/eventsmap_controller-3shcJI3.js",
52        "/assets/controllers/notification_preferences_controller.js": "/assets/controllers/notification_preferences_controller-BpjIdjW.js",
53        "search": "/assets/search-e7pXla6.js",
54        "/assets/styles/search.css": "data:application/javascript,",
55        "@symfony/ux-live-component": "/assets/@symfony/ux-live-component/live_controller-az9B8an.js",
56        "mousetrap": "/assets/vendor/mousetrap/mousetrap.index-OIqXzzk.js",
57        "doc": "/assets/doc-UvDaZEK.js",
58        "/assets/styles/doc.css": "data:application/javascript,",
59        "/assets/code.js": "/assets/code-IwnH37E.js",
60        "/assets/styles/_webfont-jetbrains-mono.css": "data:application/javascript,",
61        "/assets/styles/code.css": "data:application/javascript,",
62        "/assets/styles/component-terminal.css": "data:application/javascript,",
63        "admin-bundles": "/assets/admin-bundles-CPqXpWD.js",
64        "admin-blog": "/assets/admin-blog-pkQH3jT.js",
65        "/assets/@symfony/ux-leaflet-map/map_controller.js": "/assets/@symfony/ux-leaflet-map/map_controller-8eexC8X.js",
66        "/assets/controllers/csrf_protection_controller.js": "/assets/controllers/csrf_protection_controller-6ynUAeX.js",
67        "component-terminal": "/assets/component-terminal-34EnBuH.js",
68        "terminal-recording-player": "/assets/asciinema-player-B0DUnCB.js",
69        "backers": "/assets/backers-26elSrq.js",
70        "/assets/styles/backers.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/backers-oOsZkG3.css'}))",
71        "blog": "/assets/blog-XvjynFa.js",
72        "/assets/styles/blog.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/blog-2kum3ae.css'}))",
73        "cloud": "/assets/cloud-Y3cvlvn.js",
74        "/assets/styles/cloud.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/cloud-t73RLBv.css'}))",
75        "code": "/assets/code-IwnH37E.js",
76        "packages": "/assets/packages-mFJjaF9.js",
77        "/assets/styles/packages.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/packages-xk6dBZr.css'}))",
78        "/assets/component-terminal.js": "/assets/component-terminal-34EnBuH.js",
79        "package-downloads": "/assets/package-downloads-rW3elR9.js",
80        "/assets/styles/package-downloads.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/package-downloads-
807s4gva2.css'}))",
81        "download": "/assets/download-Z9gClTe.js",
82        "/assets/styles/download.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/download-GSt3msQ.css'}))",
83        "home": "/assets/home-WSsL0cL.js",
84        "/assets/styles/home.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/home-O2tQVo3.css'}))",
85        "jobs": "/assets/jobs-codahCP.js",
86        "/assets/styles/jobs.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/jobs-foPO9aE.css'}))",
87        "jobs-kiosk": "/assets/jobs-kiosk-yuFfljs.js",
88        "/assets/styles/jobs-kiosk.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/jobs-kiosk-Yfm0Ymp.css'}))",
89        "legacy": "/assets/legacy-8KQ6njO.js",
90        "/assets/styles/legacy.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/legacy-FyCAY7P.css'}))",
91        "releases": "/assets/releases-D7YwSJo.js",
92        "/assets/styles/releases.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/releases-fRjhDMb.css'}))",
93        "support": "/assets/support-PSMhspK.js",
94        "twenty-years": "/assets/twenty-years-yrDjvQc.js",
95        "/assets/twenty_years/styles/twenty-years-compiled.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/twenty_years/styles/twenty-years-compiled-mhpsuj3.css'}))",
96        "/assets/twenty_years/init.js": "/assets/twenty_years/init-0isE53W.js",
97        "/assets/twenty_years/confettis-effect.js": "/assets/twenty_years/confettis-effect-DsF1PMs.js",
98        "/assets/twenty_years/boxes.js": "/assets/twenty_years/boxes-sgaDl6o.js",
99        "/assets/twenty_years/scroll-boxes.js": "/assets/twenty_years/scroll-boxes-cnHzl4Y.js",
100        "/assets/twenty_years/scroll-sections.js": "/assets/twenty_years/scroll-sections-calGxLD.js",
101        "/assets/twenty_years/scroll-timeline.js": "/assets/twenty_years/scroll-timeline-__wPjz5.js",
102        "tour": "/assets/tour-nh7splk.js",
103        "/assets/tour/styles/tour.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/tour/styles/tour-stp38Na.css'}))",
104        "/assets/tour/tour.js": "/assets/tour/tour-r6FqC4C.js",
105        "contributors": "/assets/contributors-IqqEvMl.js",
106        "/assets/styles/contributors.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/styles/contributors-KOu0Ml9.css'}))",
107        "@popperjs/core": "/assets/vendor/@popperjs/core/core.index-p2GN_c6.js",
108        "sortablejs": "/assets/vendor/sortablejs/sortablejs.index-mcAJdC1.js",
109        "tom-select": "/assets/vendor/tom-select/tom-select.index-Gl5DD8U.js",
110        "tom-select/dist/css/tom-select.bootstrap5.min.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/vendor/tom-select/dist/css/tom-select.bootstrap5.min-rafe_gp.css'}))",
111        "clipboard": "/assets/vendor/clipboard/clipboard.index-vq49f2q.js",
112        "asciinema-player/dist/bundle/asciinema-player.min.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/vendor/asciinema-player/dist/bundle/asciinema-player.min-JgMTBu2.css'}))",
113        "bootstrap/dist/css/bootstrap.min.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/vendor/bootstrap/dist/css/bootstrap.min-FxLwN4-.css'}))",
114        "bootstrap/js/src/tab": "/assets/vendor/bootstrap/js/src/tab-ZksB-xf.js",
115        "bootstrap/js/src/popover": "/assets/vendor/bootstrap/js/src/popover-tVQYh2B.js",
116        "@symfony/ux-map/abstract-map-controller": "/assets/@symfony/ux-map/abstract_map_controller--4GRbZS.js",
117        "@symfony/ux-leaflet-map/map-controller": "/assets/@symfony/ux-leaflet-map/map_controller-8eexC8X.js",
118        "leaflet": "/assets/vendor/leaflet/leaflet.index-ee34P3g.js",
119        "leaflet/dist/leaflet.min.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/vendor/leaflet/dist/leaflet.min-YqA-lmN.css'}))",
120        "@hotwired/turbo": "/assets/vendor/@hotwired/turbo/turbo.index-5nPu7kj.js",
121        "emoji-mart": "/assets/vendor/emoji-mart/emoji-mart.index-Ox8Mtj1.js",
122        "@symfony/ux-leaflet-map": "/assets/@symfony/ux-leaflet-map/map_controller-8eexC8X.js",
123        "tippy.js": "/assets/vendor/tippy.js/tippy.js.index-Xz0wFJW.js",
124        "tippy.js/dist/tippy.css": "data:application/javascript,document.head.appendChild(Object.assign(document.createElement('link'),{rel:'stylesheet',href:'/assets/vendor/tippy.js/dist/tippy-LP-yd8O.css'}))",
125        "canvas-confetti": "/assets/vendor/canvas-confetti/canvas-confetti.index-_TLxkhw.js",
126        "gsap": "/assets/vendor/gsap/gsap.index-fe7Y0Cl.js",
127        "gsap/dist/ScrollTrigger.min.js": "/assets/vendor/gsap/dist/ScrollTrigger.min-kjs_lwz.js",
128        "gsap/dist/ScrollToPlugin.min.js": "/assets/vendor/gsap/dist/ScrollToPlugin.min-ctp8LSJ.js",
129        "asciinema-player": "/assets/vendor/asciinema-player/asciinema-player.index--5SkI3A.js",
130        "qrcode": "/assets/vendor/qrcode/qrcode.index-eobH2-v.js",
131        "dijkstrajs": "/assets/vendor/dijkstrajs/dijkstrajs.index-tAecifC.js"
132    }
133}
134</script>
134<script data-turbo-track="reload">
135if (!HTMLScriptElement.supports || !HTMLScriptElement.supports('importmap')) (function () {
136    const script = document.createElement('script');
137    script.src = 'https://ga.jspm.io/npm:[email protected]/dist/es-module-shims.js';
138    if (document.currentScript?.nonce) script.nonce = document.currentScript.nonce;
139    script.setAttribute('crossorigin', 'anonymous');
140    script.setAttribute('integrity', 'sha384-ie1x72Xck445i0j4SlNJ5W5iGeL3Dpa0zD48MZopgWsjNB/lt60SuG1iduZGNnJn');
141    script.setAttribute('data-turbo-track', 'reload');
142    document.head.appendChild(script);
143})();
144</script>
144
145<link rel="modulepreload" href="/assets/app-uFThPXO.js">
146<link rel="modulepreload" href="/assets/vendor/bootstrap/js/src/offcanvas-tOYGjL4.js">
147<link rel="modulepreload" href="/assets/stimulus-NEEjnKA.js">
148<link rel="modulepreload" href="/assets/@symfony/stimulus-bundle/loader-IOzBDLu.js">
149<link rel="modulepreload" href="/assets/vendor/@hotwired/stimulus/stimulus.index-ryewcoo.js">
150<link rel="modulepreload" href="/assets/@symfony/stimulus-bundle/controllers-zOfc2Bd.js">
151<link rel="modulepreload" href="/assets/@symfony/ux-live-component/live_controller-az9B8an.js">
152<link rel="modulepreload" href="/assets/controllers/download_chart_controller-c-oBQZq.js">
153<link rel="modulepreload" href="/assets/controllers/eventsmap_controller-3shcJI3.js">
154<link rel="modulepreload" href="/assets/controllers/notification_preferences_controller-BpjIdjW.js">
155<link rel="modulepreload" href="/assets/search-e7pXla6.js">
156<link rel="modulepreload" href="/assets/vendor/mousetrap/mousetrap.index-OIqXzzk.js">
157<link rel="modulepreload" href="/assets/doc-UvDaZEK.js">
158<link rel="modulepreload" href="/assets/code-IwnH37E.js">
159<script type="module" data-turbo-track="reload">import 'app';import 'search';import 'doc';</script>
159
160        
161                <link rel="stylesheet" href="https://connect.symfony.com/css/sln.css">
162        
162<script type="text/javascript" defer>
163            document.head.appendChild(Object.assign(document.createElement('script'), {
164                src: 'https://connect.symfony.com/sln.js?customize_url=https%3A%2F%2Fsymfony.com%2Faccount%2Fsln_customiser.js',
165                async: true,
166            }));
167        </script>
167
168        
169        <link rel="shortcut icon" type="image/svg+xml" href="/favicons/favicon.svg">
170        <link rel="alternate icon" type="image/png" sizes="180x180" href="/favicons/favicon-180x180.png">
171        <link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#5bbad5">
172        <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
173        <link rel="manifest" href="/static/webmanifest.json">
174        <meta name="msapplication-config" content="/static/browserconfig.xml" />
175        <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
176        <meta name="theme-color" content="#171717" media="(prefers-color-scheme: dark)">
177        <meta name="apple-mobile-web-app-title" content="Symfony">
178
179        <meta property="fb:pages" content="211720082183067">
180        <meta name="twitter:site" content="@symfony">
181        <meta name="twitter:card" content="summary_large_image" />
182
183                    <meta property="og:type" content="website">
184            <meta property="og:title" content="Contributing (Symfony Docs)">
185            <meta property="og:image" content="https://symfony.com/images/opengraph/symfony.png">
186            <meta property="og:image:alt" content="Symfony is an open source, community-driven project, and there are many ways to contribute:      Report a Bug you found (no setup needed) Review and Triage issues and pull requests to help move them f…">
187            <meta property="og:url" content="https://symfony.com/doc/current/contributing/index.html">
188
189                            <meta property="og:description" content="Symfony is an open source, community-driven project, and there are many ways to contribute:      Report a Bug you found (no setup needed) Review and Triage issues and pull requests to help move them f…">
190                    
191        <meta name="msapplication-TileColor" content="#171717">
192        <meta name="application-name" content="Symfony">
193        <meta name="msapplication-tooltip" content="Official Symfony website">
194
195            
195<script async="true" data-browser-key="708cc1e7d4caf1babcf4add8f85ee4bab46c2fc9583f44e11b2bd8fb8a6d87ab" data-sample-rate="0.010000" data-parent-trace-id="d6d295981b63a50afa1079cddecc1cb6" data-transaction-name="App\Controller\DocController::docAction" data-collector="https://ingest.blackfire-eu.observability-pipeline.blackfire.io" src="https://admin-pipeline.blackfire-eu.observability-pipeline.blackfire.io/js/probe.js"></script>
195</head>
196
197    <body data-turbo="false" class=""     
198    data-is-doc-page data-doc-book="symfony" data-doc-page="contributing/index"
199                             >
200        <a href="#main-content" class="visually-hidden-focusable skip-to-content">Skip to content</a>
201
202        
202<script>
203            function setSymfonyWebsiteColorScheme () {
204                const selectedColorScheme = localStorage.getItem('colorScheme') || 'sync';
205                const resolvedColorScheme = 'sync' === selectedColorScheme
206                    ? matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
207                    : selectedColorScheme;
208
209                document.body.classList.remove('light-theme', 'dark-theme');
210                document.body.classList.add('light' === resolvedColorScheme ? 'light-theme' : 'dark-theme');
211                document.body.setAttribute('data-bs-theme', resolvedColorScheme);
212                localStorage.setItem('colorScheme', selectedColorScheme);
213            }
214
215            setSymfonyWebsiteColorScheme();
216            window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) {
217                setSymfonyWebsiteColorScheme();
218            });
219
220            document.body.classList.add(
221                (navigator.appVersion.indexOf('Win') !== -1) ? 'windows' : (navigator.appVersion.indexOf('Mac') !== -1) ? 'macos' : 'linux'
222            );
223        </script>
223
224
225        
225<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","name":"Symfony","url":"https:\/\/symfony.com","potentialAction":{"@type":"SearchAction","target":"https:\/\/symfony.com\/search?q={query}","query-input":"required name=query"}}</script>
225
226        
226<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/symfony.com","name":"Symfony","logo":"https:\/\/symfony.com\/images\/logos\/sf-positive.png","sameAs":["https:\/\/github.com\/symfony","https:\/\/x.com\/symfony","https:\/\/mastodon.social\/@symfony","https:\/\/www.linkedin.com\/company\/symfony-sas\/","https:\/\/www.facebook.com\/SymfonyFramework","https:\/\/www.youtube.com\/symfonytv","https:\/\/bsky.app\/profile\/symfony.com","https:\/\/www.threads.com\/@symfony"]}</script>
226
227        
227<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyCon Warsaw 2026","image":"https:\/\/symfony.com\/images\/conferences\/sfcon.png","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}},"description":"A global Symfony conference in English, bringing together developers from around the world to share knowledge, network, and explore the latest in web development.","performer":[{"@type":"Person","name":"Rob Allen","url":"https:\/\/connect.symfony.com\/profile\/akrabat","image":"https:\/\/connect.symfony.com\/profile\/akrabat.picture"},{"@type":"Person","name":"Alexander M. Turek","url":"https:\/\/connect.symfony.com\/profile\/derrabus","image":"https:\/\/connect.symfony.com\/profile\/derrabus.picture"},{"@type":"Person","name":"Nils Adermann","url":"https:\/\/connect.symfony.com\/profile\/naderman","image":"https:\/\/connect.symfony.com\/profile\/naderman.picture"},{"@type":"Person","name":"Stefan Koopmanschap","url":"https:\/\/connect.symfony.com\/profile\/skoop","image":"https:\/\/connect.symfony.com\/profile\/skoop.picture"},{"@type":"Person","name":"J\u00e9r\u00f4me Tamarelle","url":"https:\/\/connect.symfony.com\/profile\/gromnan","image":"https:\/\/connect.symfony.com\/profile\/gromnan.picture"}],"location":{"@type":"Place","name":"Hilton Warsaw Hotel and Convention Centre","address":{"@type":"PostalAddress","streetAddress":"Grzybowska 63, 00-844 Warszawa, Poland","addressLocality":"Warsaw","addressCountry":"PL"},"geo":{"@type":"GeoCoordinates","latitude":52.233719,"longitude":20.986059}},"url":"https:\/\/live.symfony.com\/2026-warsaw-con\/","startDate":"2026-11-26","endDate":"2026-11-27","offers":[{"@type":"Offer","price":459,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2025-11-28T17:00:00+01:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":569,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2026-04-09T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":749,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2026-09-24T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":849,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2026-11-05T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":919,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2026-11-26T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2026-warsaw-con\/registration\/","validFrom":"2026-11-27T18:31:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script>
vendor: 1 bytes, line 227
227
228<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OnlineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"Symfony January 2027","image":"https:\/\/symfony.com\/images\/conferences\/sfcon.png","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}},"description":"A global virtual conference connecting developers worldwide to learn about the latest Symfony features, best practices, and modern PHP development.","performer":[],"location":{"@type":"VirtualLocation","url":"https:\/\/live.symfony.com\/2027-online-january\/"},"url":"https:\/\/live.symfony.com\/2027-online-january\/","startDate":"2027-01-14","endDate":"2027-01-15","offers":[{"@type":"Offer","price":79,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-online-january\/registration\/","validFrom":"2026-06-11T09:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":119,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-online-january\/registration\/","validFrom":"2026-09-16T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-online-january\/registration\/","validFrom":"2026-11-11T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-online-january\/registration\/","validFrom":"2027-01-15T17:31:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script>
vendor: 1 bytes, line 228
228
229<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyLive Paris 2027","image":"https:\/\/symfony.com\/images\/conferences\/sflive.png","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}},"description":"Conf\u00e9rence locale pour les d\u00e9veloppeurs Symfony et PHP, avec des conf\u00e9rences techniques, des retours d\u0027exp\u00e9rience et des \u00e9changes entre professionnels.","performer":[],"location":{"@type":"Place","address":{"@type":"PostalAddress","streetAddress":"","addressLocality":"Paris","addressCountry":"FR"},"geo":{"@type":"GeoCoordinates","latitude":null,"longitude":null}},"url":"https:\/\/live.symfony.com\/2027-paris\/","startDate":"2027-03-25","endDate":"2027-03-26","offers":[{"@type":"Offer","price":349,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2026-03-27T16:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":399,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2026-10-01T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":499,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2027-01-21T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":549,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2027-02-18T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":599,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2027-03-25T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-paris\/registration\/","validFrom":"2027-03-26T18:31:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script>
vendor: 1 bytes, line 229
229
230<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyLive Germany 2027","image":"https:\/\/symfony.com\/images\/conferences\/sflive.png","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}},"description":"A local conference for developers focused on real-world Symfony and PHP topics, with talks, community exchange, and technical insights.","performer":[],"location":{"@type":"Place","name":"Smartvillage Cologne","address":{"@type":"PostalAddress","streetAddress":"Schanzenstra\u00dfe 6-20\/ Kupferwerk 2.19, 51063 K\u00f6ln","addressLocality":"Cologne","addressCountry":"DE"},"geo":{"@type":"GeoCoordinates","latitude":50.969242,"longitude":7.016126}},"url":"https:\/\/live.symfony.com\/2027-germany\/","startDate":"2027-05-20","endDate":"2027-05-21","offers":[{"@type":"Offer","price":399,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2026-07-28T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":499,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2026-12-03T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":549,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2027-04-01T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":599,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2027-04-29T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":649,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2027-05-20T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2027-germany\/registration\/","validFrom":"2027-05-21T18:31:00+02:00","availability":"https:\/\/schema.org\/InStock"}]}</script>
230
231
232
233                <div id="sln"></div>
234        
235                    <header>
236    <div class="ui-page-container ui-page-container-wide">
237        <nav class="navbar navbar-expand-lg">
238            <a class="navbar-brand" href="/" aria-label="Symfony">
239                <span aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="260" height="66" viewBox="0 0 260 66"><circle fill="#1A171B" cx="32.455" cy="32.665" r="32.455"/><path fill="#FFF" d="M46.644 12.219c-3.297.115-6.175 1.932-8.317 4.446-2.372 2.756-3.95 6.025-5.087 9.362-2.034-1.667-3.603-3.825-6.866-4.766-2.522-.724-5.171-.425-7.607 1.39-1.154.862-1.949 2.165-2.327 3.39-.979 3.183 1.029 6.016 1.941 7.033l1.994 2.137c.411.419 1.401 1.512.917 3.079-.523 1.704-2.577 2.807-4.684 2.157-.941-.287-2.293-.988-1.99-1.975.125-.404.414-.706.569-1.055.142-.3.21-.525.253-.657.385-1.257-.141-2.892-1.487-3.307-1.256-.385-2.541-.08-3.039 1.537-.565 1.837.314 5.171 5.023 6.623 5.517 1.695 10.184-1.309 10.846-5.227.417-2.454-.691-4.277-2.721-6.622l-1.654-1.829c-1.002-1.001-1.346-2.707-.309-4.018.875-1.106 2.121-1.578 4.162-1.023 2.979.809 4.307 2.876 6.523 4.543-.915 3.001-1.513 6.013-2.054 8.714l-.33 2.014c-1.584 8.308-2.793 12.87-5.935 15.489-.633.45-1.538 1.124-2.902 1.171-.715.022-.946-.47-.956-.684-.017-.502.406-.732.687-.958.42-.229 1.055-.609 1.012-1.826-.046-1.438-1.237-2.685-2.959-2.628-1.29.044-3.256 1.258-3.182 3.48.077 2.295 2.216 4.015 5.441 3.906 1.724-.059 5.574-.761 9.368-5.271 4.416-5.17 5.651-11.097 6.58-15.435l1.037-5.727c.576.069 1.192.115 1.862.131 5.5.116 8.251-2.733 8.292-4.805.027-1.254-.823-2.488-2.013-2.46-.852.024-1.922.591-2.179 1.769-.251 1.156 1.75 2.199.186 3.212-1.111.719-3.103 1.226-5.908.814l.51-2.819c1.041-5.346 2.325-11.922 7.196-12.082.355-.018 1.654.016 1.684.875.009.287-.062.36-.398 1.017-.342.512-.471.948-.455 1.449.047 1.365 1.085 2.262 2.586 2.208 2.01-.065 2.588-2.022 2.555-3.027-.081-2.361-2.57-3.853-5.865-3.745z"/><path fill="#1A171B" d="M196.782 23.534c7.48 0 12.499 5.407 12.499 12.887 0 7.048-5.116 12.886-12.499 12.886-7.435 0-12.55-5.838-12.55-12.886 0-7.48 5.018-12.887 12.55-12.887zm0 22.109c5.306 0 7.671-4.827 7.671-9.222 0-4.68-2.847-9.217-7.671-9.217-4.877 0-7.724 4.537-7.724 9.217.001 4.394 2.365 9.222 7.724 9.222zM183.61 25.825v-1.713h-6.518v-2.341c0-3.33.483-5.842 4.391-5.842.072 0 .149.005.224.008.008 0 .007-.012.016-.012 1.085.08 1.987-.804 2.048-1.887l.08-1.486c-.915-.146-1.884-.29-3.039-.29-6.709 0-8.255 3.91-8.255 9.896v1.955h-5.795v1.913c.149.99.996 1.752 2.031 1.752.006 0 .009.005.016.005h3.748V48.73h2.5l.006-.001c1.04 0 1.892-.779 2.03-1.779V27.783h4.538a2.052 2.052 0 0 0 1.979-1.958zm-60.435-1.713c-.008 0-.013.006-.024.006-.956 0-1.882.657-2.286 1.545l-6.244 18.82h-.096l-6.106-18.81c-.399-.893-1.329-1.555-2.291-1.555-.011 0-.015-.006-.024-.006h-3.164l8.351 22.977c.291.821.871 2.077.871 2.606 0 .483-1.353 6.08-5.409 6.08-.1 0-.201-.009-.3-.017-1.034-.057-1.815.665-1.989 1.779l-.124 1.57c.82.145 1.645.338 3.092.338 5.984 0 7.769-5.455 9.46-10.185l9.073-25.149h-2.79zm-28.843 5c-3.747-1.917-7.847-3.218-7.918-7.076.012-4.097 3.776-5.172 6.677-5.169.012-.002.024-.002.031-.002 1.26 0 2.268.125 3.251.34.013 0 .011-.016.027-.016 1.039.076 1.911-.737 2.034-1.762l.083-1.488c-1.902-.473-3.889-.712-5.619-.712-6.309.039-10.992 3.213-11.007 9.268.009 5.296 3.578 7.349 7.416 9.207 3.764 1.81 7.888 3.305 7.924 7.674-.023 4.56-4.423 6.241-7.455 6.247-1.773-.006-3.698-.449-5.32-.96-1.017-.168-1.851.729-1.982 1.917l-.138 1.327c2.23.72 4.517 1.348 6.815 1.348h.027c7.065-.051 12.557-2.869 12.578-10.185-.011-5.645-3.604-8.016-7.424-9.958zm68.623 19.617l.006-.001c.98 0 1.796-.687 2.004-1.604V32.947c0-5.358-2.267-9.413-8.546-9.413-2.219 0-5.934 1.257-7.623 4.779-1.306-3.331-4.15-4.779-7-4.779-3.619 0-6.082 1.303-7.816 4.152h-.099v-1.532a2.058 2.058 0 0 0-2.055-2.036c-.008 0-.014-.006-.022-.006h-2.169v24.617h2.456l.006-.001a2.06 2.06 0 0 0 2.059-2.059c0-.03.011-.042.016-.063v-10.28c0-4.585 1.834-9.122 6.467-9.122 3.669 0 4.396 3.811 4.396 6.853V48.73h2.49l.007-.001a2.05 2.05 0 0 0 2.037-1.873v-10.53c0-4.585 1.835-9.122 6.468-9.122 3.667 0 4.393 3.811 4.393 6.853V48.73h2.525zm70.113 0l.008-.001a2.054 2.054 0 0 0 2.049-1.964v-12.66c0-6.
239611-2.85-10.571-9.222-10.571-3.426 0-6.705 1.691-8.059 4.491h-.097v-1.839c0-.001-.004-.001-.004-.006a2.057 2.057 0 0 0-2.058-2.061c-.011 0-.015-.006-.022-.006h-2.311v24.617h2.493l.007-.001a2.05 2.05 0 0 0 2.038-1.895v-9.495c0-5.984 2.319-10.135 7.482-10.135 3.96.24 5.211 3.038 5.211 8.783v12.742h2.485zm24.428-24.617c-.011 0-.014.006-.026.006-.954 0-1.883.657-2.283 1.545l-6.242 18.82h-.102l-6.104-18.81c-.401-.893-1.331-1.555-2.293-1.555-.007 0-.015-.006-.021-.006h-3.164l8.351 22.977c.291.821.873 2.077.873 2.606 0 .483-1.355 6.08-5.41 6.08-.102 0-.201-.009-.301-.017-1.033-.057-1.815.665-1.99 1.779l-.122 1.57c.82.145 1.645.338 3.091.338 5.984 0 7.772-5.455 9.462-10.185l9.074-25.149h-2.793z"/></svg></span>
240            </a>
241
242            <button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#header-nav-menu" aria-controls="header-nav-menu" aria-expanded="false" aria-label="Toggle navigation">
243                
244
245
246<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg>
247
248            </button>
249
250            <div class="offcanvas offcanvas-end" tabindex="-1" id="header-nav-menu">
251                <div class="offcanvas-header justify-content-end">
252                    <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close">Close</button>
253                </div>
254
255                <div class="offcanvas-body align-items-center">
256                    <div id="sensiolabs-highlight-responsive-menu"></div>
257
258                    <ul class="navbar-nav flex-grow-1" role="menubar" aria-label="Menu">
259                        <li role="none" class="nav-item">
260                            <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">About</span>
261
262                            <div class="submenu">
263                                <ul role="menu" aria-label="About">
264                                    <li role="none" class="nav-link-with-icon">
265                                        <span class="nav-link-icon">
266                                            
267
268
269<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 13q.687 1 2 1c1.313 0 2-.875 2-1.5c0-1.5-2-1-2-2C8 9.875 8.516 9 9.5 9c2.5 0 1.563 2 5.5 2q1 0 1-1"></path><path d="M9 17q-.143 1 1 1q2.571 0 3-6c.286-4 1.571-6 3-6q.857 0 1 1"></path><path d="M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2a10 10 0 0 1 10 10"></path></g></svg>
270
271                                        </span>
272                                        <a role="menuitem" class="nav-link" href="/what-is-symfony">What is Symfony?</a>
273                                    </li>
274                                    <li role="none" class="nav-link-with-icon">
275                                        <span class="nav-link-icon">
276                                            
277
278
279<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 7a4 4 0 1 0 8 0a4 4 0 1 0-8 0M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2m1-17.87a4 4 0 0 1 0 7.75M21 21v-2a4 4 0 0 0-3-3.85"></path></svg>
280
281                                        </span>
282                                        <a role="menuitem" class="nav-link" href="/community">Community</a>
283                                    </li>
284                                    <li role="none" class="nav-link-with-icon">
285                                        <span class="nav-link-icon">
286                                            
287
288
289<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 6h3a1 1 0 0 1 1 1v11a2 2 0 0 1-4 0V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v12a3 3 0 0 0 3 3h11M8 8h4m-4 4h4m-4 4h4"></path></svg>
290
291                                        </span>
292                                        <a role="menuitem" class="nav-link" href="/blog/">News</a>
293                                    </li>
294                                    <li role="none" class="nav-link-with-icon">
295                                        <span class="nav-link-icon">
296                                            
297
298
299<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2 8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2zm4 2v.01m4-.01v.01m4-.01v.01m4-.01v.01M6 14v.01M18 14v.01M10 14l4 .01"></path></svg>
300
301                                        </span>
302                                        <a role="menuitem" class="nav-link" href="/doc/current/contributing/index.html">Contributing</a>
303                                    </li>
304                                    <li role="none" class="nav-link-with-icon">
305                                        <span class="nav-link-icon">
306                                            
307
308
309<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9 5v.01"></path><path d="M12 13.5a1.5 1.5 0 0 1 1-1.5a2.6 2.6 0 1 0-3-4"></path></g></svg>
310
311                                        </span>
312                                        <a role="menuitem" class="nav-link" href="/support">Support</a>
313                                    </li>
314                                </ul>
315                            </div>
316                        </li>
317
318                        <li role="none" class="nav-item">
319                            <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">Documentation</span>
320
321                            <div class="submenu">
322                                <ul role="menu" aria-label="Documentation">
323                                    <li role="none" class="nav-link-with-icon">
324                                        <span class="nav-link-icon">
325                                            
326
327
328<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M5 5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1zm4 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zM5 8h4m0 8h4"></path><path d="m13.803 4.56l2.184-.53c.562-.135 1.133.19 1.282.732l3.695 13.418a1.02 1.02 0 0 1-.634 1.219l-.133.041l-2.184.53c-.562.135-1.133-.19-1.282-.732L13.036 5.82a1.02 1.02 0 0 1 .634-1.219zM14 9l4-1m-2 8l3.923-.98"></path></g></svg>
329
330                                        </span>
331                                        <a role="menuitem" class="nav-link" href="/doc">Symfony Docs</a>
332                                    </li>
333                                    <li role="none" class="nav-link-with-icon">
334                                        <span class="nav-link-icon">
335                                            
336
337
338<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M19 4v16H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z"></path><path d="M19 16H7a2 2 0 0 0-2 2M9 8h6"></path></g></svg>
339
340                                        </span>
341                                        <a role="menuitem" class="nav-link" href="/book">Symfony Book</a>
342                                    </li>
343                                    <li role="none" class="nav-link-with-icon">
344                                        <span class="nav-link-icon">
345                                            
346
347
348<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m15 10l4.553-2.276A1 1 0 0 1 21 8.618v6.764a1 1 0 0 1-1.447.894L15 14zM3 8a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>
349
350                                        </span>
351                                        <a role="menuitem" class="nav-link" href="https://symfonycasts.com">Screencasts</a>
352                                    </li>
353                                    <li role="none" class="nav-link-with-icon">
354                                        <span class="nav-link-icon">
355                                            
356
357
358<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m12 3l8 4.5v9L12 21l-8-4.5v-9zm0 9l8-4.5M12 12v9m0-9L4 7.5"></path></svg>
359
360                                        </span>
361                                        <a role="menuitem" class="nav-link" href="/bundles">Symfony Bundles</a>
362                                    </li>
363                                    <li role="none" class="nav-link-with-icon">
364                                        <span class="nav-link-icon">
365                                            
366
367
368<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6.657 18C4.085 18 2 15.993 2 13.517s2.085-4.482 4.657-4.482c.393-1.762 1.794-3.2 3.675-3.773c1.88-.572 3.956-.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486s-1.551 3.487-3.465 3.487H6.657"></path></svg>
369
370                                        </span>
371                                        <a role="menuitem" class="nav-link" href="/doc/cloud/">Symfony Cloud</a>
372                                    </li>
373                                    <li role="none" class="nav-link-with-icon">
374                                        <span class="nav-link-icon">
375                                            
376
377
378<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M22 9L12 5L2 9l10 4zv6"></path><path d="M6 10.6V16a6 3 0 0 0 12 0v-5.4"></path></g></svg>
379
380                                        </span>
381                                        <a role="menuitem" class="nav-link" href="https://sensiolabs.com/training?utm_source=symfony&utm_medium=symfony_submenu&utm_campaign=permanent_referral">Training</a>
382                                    </li>
383                                </ul>
384                            </div>
385                        </li>
386
387                        <li role="none" class="nav-item menu-services">
388                            <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">Services</span>
389
390                            <div class="submenu">
391                                <ul role="menu" aria-label="Services">
392                                    <li role="none" class="nav-link-with-icon">
393                                        <span class="nav-link-icon">
394                                            
395
396
397<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6.657 18C4.085 18 2 15.993 2 13.517s2.085-4.482 4.657-4.482c.393-1.762 1.794-3.2 3.675-3.773c1.88-.572 3.956-.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486s-1.551 3.487-3.465 3.487H6.657"></path></svg>
398
399                                        </span>
400                                        <span>
401                                            <a role="menuitem" class="nav-link" href="/cloud/">Upsun for Symfony</a>
402                                            <span class="nav-link-description">Best platform to deploy Symfony apps</span>
403                                        </span>
404                                    </li>
405                                    <li role="none" class="nav-link-with-icon">
406                                        <span class="nav-link-icon">
407                                            
408
409
410<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
410<path d="M8 5H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.697M18 12V7a2 2 0 0 0-2-2h-2"></path><path d="M8 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v0a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2m0 6h4m-4 4h3m3 2.5a2.5 2.5 0 1 0 5 0a2.5 2.5 0 1 0-5 0m4.5 2L21 22"></path></g></svg>
411
412                                        </span>
413                                        <span>
414                                            <a role="menuitem" class="nav-link" href="https://insight.symfony.com">SymfonyInsight</a>
415                                            <span class="nav-link-description">Automatic quality checks for your apps</span>
416                                        </span>
417                                    </li>
418                                    <li role="none" class="nav-link-with-icon">
419                                        <span class="nav-link-icon">
420                                            
421
422
423<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 15a3 3 0 1 0 6 0a3 3 0 1 0-6 0"></path><path d="M13 17.5V22l2-1.5l2 1.5v-4.5"></path><path d="M10 19H5a2 2 0 0 1-2-2V7c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-1 1.73M6 9h12M6 12h3m-3 3h2"></path></g></svg>
424
425                                        </span>
426                                        <span>
427                                            <a role="menuitem" class="nav-link" href="https://certification.symfony.com">Symfony Certification</a>
428                                            <span class="nav-link-description">Prove your knowledge and boost your career</span>
429                                        </span>
430                                    </li>
431                                    <li role="none" class="nav-link-with-icon">
432                                        <span class="nav-link-icon">
433                                            
434
435
436<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm5-2V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m-4 5v.01"></path><path d="M3 13a20 20 0 0 0 18 0"></path></g></svg>
437
438                                        </span>
439                                        <span>
440                                            <a role="menuitem" class="nav-link" href="https://sensiolabs.com/?utm_source=symfony&utm_medium=symfony_submenu&utm_campaign=permanent_referral">SensioLabs</a>
441                                            <span class="nav-link-description">Professional services to help you with Symfony</span>
442                                        </span>
443                                    </li>
444                                    <li role="none" class="nav-link-with-icon">
445                                        <span class="nav-link-icon">
446                                            
447
448
449<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 12c2-2.96 0-7-1-8c0 3.038-1.773 4.741-3 6c-1.226 1.26-2 3.24-2 5a6 6 0 1 0 12 0c0-1.532-1.056-3.94-2-5c-1.786 3-2.791 3-4 2"></path></svg>
450
451                                        </span>
452                                        <span>
453                                            <a role="menuitem" class="nav-link" href="https://www.blackfire.io/?utm_source=symfony&amp;utm_medium=symfonycom_footer&amp;utm_campaign=profiler">Blackfire</a>
454                                            <span class="nav-link-description">Profile and monitor performance of your apps</span>
455                                        </span>
456                                    </li>
457                                </ul>
458                            </div>
459                        </li>
460
461                        <li role="none" class="d-lg-none">
462                            <span class="nav-header">Other</span>
463                        </li>
464
465                        <li role="none" class="nav-item nav-item-standalone">
466                            <a role="menuitem" class="nav-link" href="/blog/">Blog</a>
467                        </li>
468
469                        <li role="none" class="nav-item nav-item-standalone">
470                            <a role="menuitem" class="nav-link" href="/download">Download</a>
471                        </li>
472                    </ul>
473
474                    <div class="sensiolabs d-none d-lg-block text-center position-relative">
475                        <span class="byline">sponsored by</span>
476                        <a target="_blank" class="stretched-link d-inline-block mt-2 mt-md-0" rel="external noopener" href="https://sensiolabs.com/?utm_source=symfony&utm_medium=symfony_sponsoredby&utm_campaign=permanent_referral" title="SensioLabs, PHP services and software solutions for enterprise and community.">
477                                                        <span class="dark-theme d-md-none">
478
479        
480<svg version="1.1" x="0px" y="0px" viewBox="0 0 326.866 51.069" width="81px" height="13px" enable-background="new 0 0 326.866 51.069" space="preserve" class="logo-sensiolabs" fill="currentColor" aria-hidden="true"><style>
481    .logo-sensiolabs path.sensio-word { fill: #000000; }
482    .logo-sensiolabs path.labs-word { fill: #82E83F; }
483    .dark-theme .logo-sensiolabs path.sensio-word { fill: #FFFFFF; }
484  </style><g>
485	<path class="sensio-word" d="M10.459,33.728c0,6.486,5.091,9.012,10.872,9.012c3.784,0,9.563-1.094,9.563-6.073c0-5.26-7.362-6.147-14.586-8.059   c-7.294-1.911-14.656-4.71-14.656-13.861C1.652,4.779,11.147,0,20.022,0c10.253,0,19.679,4.439,19.679,15.702H29.242   c-0.344-5.87-4.54-7.373-9.7-7.373c-3.44,0-7.431,1.434-7.431,5.531c0,3.755,2.338,4.232,14.655,7.374   c3.577,0.887,14.586,3.141,14.586,14.2c0,8.944-7.087,15.635-20.435,15.635c-10.871,0-21.053-5.323-20.916-17.342H10.459z"></path>
486	<path class="sensio-word" d="M51.453,34.488c0.275,6.192,3.302,9.013,8.737,9.013c3.922,0,7.088-2.408,7.707-4.611h8.6   c-2.753,8.395-8.6,11.973-16.65,11.973c-11.215,0-18.165-7.706-18.165-18.713c0-10.666,7.363-18.784,18.165-18.784   c12.109,0,17.957,10.183,17.27,21.123H51.453z M67.347,28.295c-0.895-4.953-3.027-7.568-7.775-7.568   c-6.192,0-7.981,4.816-8.118,7.568H67.347z"></path>
487	<path class="sensio-word" d="M78.026,14.327h9.287v4.956h0.207c2.477-3.991,6.742-5.918,10.871-5.918c10.389,0,13.004,5.847,13.004,14.653v21.88h-9.771   v-20.09c0-5.849-1.72-8.738-6.263-8.738c-5.297,0-7.567,2.958-7.567,10.182v18.646h-9.769V14.327z"></path>
488	<path class="sensio-word" d="M121.47,38.34c0.069,4.267,3.647,5.986,7.5,5.986c2.817,0,6.396-1.101,6.396-4.54c0-2.96-4.059-3.991-11.075-5.505   c-5.642-1.238-11.282-3.233-11.282-9.496c0-9.08,7.842-11.42,15.479-11.42c7.773,0,14.93,2.613,15.685,11.352h-9.289   c-0.272-3.783-3.164-4.814-6.672-4.814c-2.199,0-5.434,0.412-5.434,3.301c0,3.509,5.503,3.99,11.074,5.3   c5.711,1.306,11.284,3.37,11.284,9.974c0,9.359-8.118,12.386-16.235,12.386c-8.256,0-16.307-3.096-16.721-12.522H121.47z"></path>
489	<path class="sensio-word" d="M155.728,8.823h-9.769v-8.05h9.769V8.823z M145.959,14.327h9.769v35.571h-9.769V14.327z"></path>
490	<path class="sensio-word" d="M175.05,13.365c11.214,0,18.438,7.43,18.438,18.783c0,11.283-7.225,18.714-18.438,18.714   c-11.146,0-18.37-7.431-18.37-18.714C156.68,20.795,163.904,13.365,175.05,13.365 M175.05,43.501c6.674,0,8.669-5.711,8.669-11.353   c0-5.712-1.995-11.422-8.669-11.422c-6.604,0-8.601,5.71-8.601,11.422C166.449,37.79,168.445,43.501,175.05,43.501"></path>
491</g><g>
492	<path class="labs-word" d="M195.349,49.579V1.357h9.817v40.03h19.409v8.191H195.349z"></path>
493	<path class="labs-word" d="M234.742,25.104l-8.457-1.526c0.95-3.404,2.587-5.925,4.909-7.562c2.32-1.636,5.77-2.454,10.347-2.454   c4.157,0,7.252,0.492,9.286,1.476c2.034,0.984,3.467,2.233,4.295,3.748c0.83,1.515,1.244,4.295,1.244,8.341l-0.1,10.879   c0,3.096,0.149,5.378,0.447,6.849c0.299,1.47,0.857,3.046,1.676,4.726h-9.221c-0.243-0.619-0.541-1.536-0.895-2.753   c-0.156-0.552-0.266-0.917-0.332-1.095c-1.592,1.549-3.295,2.709-5.107,3.482c-1.813,0.774-3.748,1.161-5.805,1.161   c-3.626,0-6.483-0.983-8.572-2.951c-2.09-1.968-3.135-4.455-3.135-7.463c0-1.989,0.476-3.764,1.426-5.323   c0.951-1.559,2.283-2.752,3.997-3.581c1.713-0.829,4.185-1.554,7.412-2.173c4.356-0.817,7.374-1.58,9.054-2.288v-0.929   c0-1.791-0.441-3.068-1.326-3.831s-2.554-1.144-5.008-1.144c-1.658,0-2.951,0.326-3.881,0.979   C236.069,22.323,235.317,23.467,234.742,25.104z M247.212,32.665c-1.193,0.397-3.084,0.873-5.671,1.426s-4.278,1.095-5.074,1.625   c-1.216,0.862-1.823,1.957-1.823,3.283c0,1.306,0.485,2.433,1.459,3.383c0.973,0.951,2.211,1.427,3.715,1.427   c1.68,0,3.283-0.553,4.809-1.658c1.127-0.841,1.867-1.868,2.222-3.085c0.243-0.796,0.364-2.31,0.364-4.543V32.665z"></path>
494	<path class="labs-word" d="M260.093,49.579V0.959h9.318V18.47c2.875-3.271,6.279-4.908,10.215-4.908c4.289,0,7.838,1.554,10.646,4.66   c2.808,3.106,4.212,7.567,4.212,13.382c0,6.015-1.432,10.646-4.295,13.896s-6.341,4.875-10.431,4.875   c-2.012,0-3.996-0.503-5.953-1.509s-3.643-2.493-5.058-4.461v5.174H260.093z M269.345,31.205c0,3.648,0.575,6.347,1.725,8.093   c1.614,2.477,3.759,3.715,6.435,3.715c2.056,0,3.808-0.879,5.257-2.637c1.447-1.758,2.172-4.527,2.172-8.309   c0-4.023-0.729-6.926-2.188-8.705c-1.46-1.78-3.328-2.67-5.604-2.67c-2.234,0-4.092,0.868-5.572,2.604   C270.086,25.031,269.345,27.668,269.345,31.205z"></path>
495	<path class="labs-word" d="M293.967,39.53l9.353-1.427c0.398,1.813,1.205,3.19,2.422,4.13c1.215,0.939,2.918,1.409,5.107,1.409   c2.409,0,4.223-0.442,5.438-1.327c0.817-0.618,1.228-1.447,1.228-2.487c0-0.707-0.222-1.293-0.664-1.758   c-0.464-0.441-1.504-0.851-3.117-1.227c-
4957.518-1.658-12.283-3.173-14.294-4.544c-2.786-1.901-4.179-4.544-4.179-7.927   c0-3.051,1.205-5.615,3.615-7.694c2.409-2.077,6.146-3.117,11.209-3.117c4.82,0,8.402,0.785,10.746,2.354   c2.344,1.57,3.957,3.892,4.842,6.965l-8.789,1.625c-0.376-1.37-1.089-2.421-2.139-3.15c-1.051-0.729-2.549-1.095-4.494-1.095   c-2.454,0-4.212,0.344-5.273,1.028c-0.707,0.486-1.061,1.117-1.061,1.891c0,0.663,0.309,1.227,0.928,1.691   c0.84,0.619,3.742,1.492,8.707,2.62c4.963,1.127,8.429,2.51,10.396,4.146c1.945,1.658,2.918,3.969,2.918,6.932   c0,3.229-1.348,6.003-4.045,8.324c-2.698,2.321-6.689,3.482-11.973,3.482c-4.799,0-8.596-0.973-11.393-2.919   C296.659,45.511,294.829,42.869,293.967,39.53z"></path>
496</g></svg>
497</span>
498                            <span class="d-none d-md-inline-block">
499
500        
501<svg version="1.1" x="0px" y="0px" viewBox="0 0 326.866 51.069" width="81px" height="13px" enable-background="new 0 0 326.866 51.069" space="preserve" class="logo-sensiolabs" fill="currentColor" aria-hidden="true"><style>
502    .logo-sensiolabs path.sensio-word { fill: #000000; }
503    .logo-sensiolabs path.labs-word { fill: #82E83F; }
504    .dark-theme .logo-sensiolabs path.sensio-word { fill: #FFFFFF; }
505  </style><g>
506	<path class="sensio-word" d="M10.459,33.728c0,6.486,5.091,9.012,10.872,9.012c3.784,0,9.563-1.094,9.563-6.073c0-5.26-7.362-6.147-14.586-8.059   c-7.294-1.911-14.656-4.71-14.656-13.861C1.652,4.779,11.147,0,20.022,0c10.253,0,19.679,4.439,19.679,15.702H29.242   c-0.344-5.87-4.54-7.373-9.7-7.373c-3.44,0-7.431,1.434-7.431,5.531c0,3.755,2.338,4.232,14.655,7.374   c3.577,0.887,14.586,3.141,14.586,14.2c0,8.944-7.087,15.635-20.435,15.635c-10.871,0-21.053-5.323-20.916-17.342H10.459z"></path>
507	<path class="sensio-word" d="M51.453,34.488c0.275,6.192,3.302,9.013,8.737,9.013c3.922,0,7.088-2.408,7.707-4.611h8.6   c-2.753,8.395-8.6,11.973-16.65,11.973c-11.215,0-18.165-7.706-18.165-18.713c0-10.666,7.363-18.784,18.165-18.784   c12.109,0,17.957,10.183,17.27,21.123H51.453z M67.347,28.295c-0.895-4.953-3.027-7.568-7.775-7.568   c-6.192,0-7.981,4.816-8.118,7.568H67.347z"></path>
508	<path class="sensio-word" d="M78.026,14.327h9.287v4.956h0.207c2.477-3.991,6.742-5.918,10.871-5.918c10.389,0,13.004,5.847,13.004,14.653v21.88h-9.771   v-20.09c0-5.849-1.72-8.738-6.263-8.738c-5.297,0-7.567,2.958-7.567,10.182v18.646h-9.769V14.327z"></path>
509	<path class="sensio-word" d="M121.47,38.34c0.069,4.267,3.647,5.986,7.5,5.986c2.817,0,6.396-1.101,6.396-4.54c0-2.96-4.059-3.991-11.075-5.505   c-5.642-1.238-11.282-3.233-11.282-9.496c0-9.08,7.842-11.42,15.479-11.42c7.773,0,14.93,2.613,15.685,11.352h-9.289   c-0.272-3.783-3.164-4.814-6.672-4.814c-2.199,0-5.434,0.412-5.434,3.301c0,3.509,5.503,3.99,11.074,5.3   c5.711,1.306,11.284,3.37,11.284,9.974c0,9.359-8.118,12.386-16.235,12.386c-8.256,0-16.307-3.096-16.721-12.522H121.47z"></path>
510	<path class="sensio-word" d="M155.728,8.823h-9.769v-8.05h9.769V8.823z M145.959,14.327h9.769v35.571h-9.769V14.327z"></path>
511	<path class="sensio-word" d="M175.05,13.365c11.214,0,18.438,7.43,18.438,18.783c0,11.283-7.225,18.714-18.438,18.714   c-11.146,0-18.37-7.431-18.37-18.714C156.68,20.795,163.904,13.365,175.05,13.365 M175.05,43.501c6.674,0,8.669-5.711,8.669-11.353   c0-5.712-1.995-11.422-8.669-11.422c-6.604,0-8.601,5.71-8.601,11.422C166.449,37.79,168.445,43.501,175.05,43.501"></path>
512</g><g>
513	<path class="labs-word" d="M195.349,49.579V1.357h9.817v40.03h19.409v8.191H195.349z"></path>
514	<path class="labs-word" d="M234.742,25.104l-8.457-1.526c0.95-3.404,2.587-5.925,4.909-7.562c2.32-1.636,5.77-2.454,10.347-2.454   c4.157,0,7.252,0.492,9.286,1.476c2.034,0.984,3.467,2.233,4.295,3.748c0.83,1.515,1.244,4.295,1.244,8.341l-0.1,10.879   c0,3.096,0.149,5.378,0.447,6.849c0.299,1.47,0.857,3.046,1.676,4.726h-9.221c-0.243-0.619-0.541-1.536-0.895-2.753   c-0.156-0.552-0.266-0.917-0.332-1.095c-1.592,1.549-3.295,2.709-5.107,3.482c-1.813,0.774-3.748,1.161-5.805,1.161   c-3.626,0-6.483-0.983-8.572-2.951c-2.09-1.968-3.135-4.455-3.135-7.463c0-1.989,0.476-3.764,1.426-5.323   c0.951-1.559,2.283-2.752,3.997-3.581c1.713-0.829,4.185-1.554,7.412-2.173c4.356-0.817,7.374-1.58,9.054-2.288v-0.929   c0-1.791-0.441-3.068-1.326-3.831s-2.554-1.144-5.008-1.144c-1.658,0-2.951,0.326-3.881,0.979   C236.069,22.323,235.317,23.467,234.742,25.104z M247.212,32.665c-1.193,0.397-3.084,0.873-5.671,1.426s-4.278,1.095-5.074,1.625   c-1.216,0.862-1.823,1.957-1.823,3.283c0,1.306,0.485,2.433,1.459,3.383c0.973,0.951,2.211,1.427,3.715,1.427   c1.68,0,3.283-0.553,4.809-1.658c1.127-0.841,1.867-1.868,2.222-3.085c0.243-0.796,0.364-2.31,0.364-4.543V32.665z"></path>
515	<path class="labs-word" d="M260.093,49.579V0.959h9.318V18.47c2.875-3.271,6.279-4.908,10.215-4.908c4.289,0,7.838,1.554,10.646,4.66   c2.808,3.106,4.212,7.567,4.212,13.382c0,6.015-1.432,10.646-4.295,13.896s-6.341,4.875-10.431,4.875   c-2.012,0-3.996-0.503-5.953-1.509s-3.643-2.493-5.058-4.461v5.174H260.093z M269.345,31.205c0,3.648,0.575,6.347,1.725,8.093   c1.614,2.477,3.759,3.715,6.435,3.715c2.056,0,3.808-0.879,5.257-2.637c1.447-1.758,2.172-4.527,2.172-8.309   c0-4.023-0.729-6.926-2.188-8.705c-1.46-1.78-3.328-2.67-5.604-2.67c-2.234,0-4.092,0.868-5.572,2.604   C270.086,25.031,269.345,27.668,269.345,31.205z"></path>
516	<path class="labs-word" d="M293.967,39.53l9.353-1.427c0.398,1.813,1.205,3.19,2.422,4.13c1.215,0.939,2.918,1.409,5.107,1.409   c2.409,0,4.223-0.442,5.438-1.327c0.817-0.618,1.228-1.447,1.228-2.487c0-0.707-0.222-1.293-0.664-1.758   c-0.464-0.441-1.504-0.851-3.117-1.227c-
5167.518-1.658-12.283-3.173-14.294-4.544c-2.786-1.901-4.179-4.544-4.179-7.927   c0-3.051,1.205-5.615,3.615-7.694c2.409-2.077,6.146-3.117,11.209-3.117c4.82,0,8.402,0.785,10.746,2.354   c2.344,1.57,3.957,3.892,4.842,6.965l-8.789,1.625c-0.376-1.37-1.089-2.421-2.139-3.15c-1.051-0.729-2.549-1.095-4.494-1.095   c-2.454,0-4.212,0.344-5.273,1.028c-0.707,0.486-1.061,1.117-1.061,1.891c0,0.663,0.309,1.227,0.928,1.691   c0.84,0.619,3.742,1.492,8.707,2.62c4.963,1.127,8.429,2.51,10.396,4.146c1.945,1.658,2.918,3.969,2.918,6.932   c0,3.229-1.348,6.003-4.045,8.324c-2.698,2.321-6.689,3.482-11.973,3.482c-4.799,0-8.596-0.973-11.393-2.919   C296.659,45.511,294.829,42.869,293.967,39.53z"></path>
517</g></svg>
518</span>
519                        </a>
520                    </div>
521                </div>
522            </div>
523        </nav>
524    </div>
525</header>
526
527        
528                    <aside class="highlight-top-horizontal">
529                                                    
529<script>
530    const all_conferences = [{"title":"SymfonyCon Warsaw 2026","texts":["November 26 \u2013 27, 2026","Worldwide event in English","+35 talks and workshops"],"link":"https:\/\/live.symfony.com\/2026-warsaw-con","css_class":"sfcon","has_language_constraints":false,"required_language":null},{"title":"SymfonyOnline January 2027","texts":["January 14 \u2013 15, 2027","100% Online","+20 talks and workshops"],"link":"https:\/\/live.symfony.com\/2027-online-january","css_class":"sfonline","has_language_constraints":false,"required_language":null},{"title":"SymfonyLive Paris 2027","texts":["25 \u2013 26 mars 2027","\u00c9v\u00e9nement francophone annuel","+25 sujets et formations"],"link":"https:\/\/live.symfony.com\/2027-paris","css_class":"sflive","has_language_constraints":true,"required_language":"fr"},{"title":"SymfonyLive Germany 2027","texts":["May 20 \u2013 21, 2027","+20 talks and workshops","Register now"],"link":"https:\/\/live.symfony.com\/2027-germany","css_class":"sflive","has_language_constraints":false,"required_language":null}];
531
532    document.addEventListener('DOMContentLoaded', function() {
533        const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
534        const frenchSpeaker = ['Europe/Paris', 'Europe/Brussels', 'Europe/Zurich'].includes(userTimezone);
535        const germanSpeaker = ['Europe/Berlin', 'Europe/Busingen', 'Europe/Luxembourg', 'Europe/Vienna', 'Europe/Zurich'].includes(userTimezone);
536
537        let conferences = [];
538        if (frenchSpeaker) {
539            conferences = all_conferences.filter(conference => !(conference.has_language_constraints && 'french' !== conference.required_language))
540        } else if (germanSpeaker) {
541            conferences = all_conferences.filter(conference => !(conference.has_language_constraints && 'german' !== conference.required_language))
542        } else {
543            conferences = all_conferences.filter(conference => !conference.has_language_constraints);
544        }
545
546        const conference = conferences[Math.floor(Math.random() * conferences.length)];
547        document.querySelector('.top-horizontal-highlights').classList.add(conference.css_class);
548
549        const highlightElement = document.querySelector('.top-horizontal-highlight');
550
551        const titleElement = document.createElement('a');
552        titleElement.classList.add('top-horizontal-highlight-title');
553        titleElement.classList.add('text-nowrap');
554        titleElement.href = conference.link;
555        titleElement.innerHTML = conference.title;
556        highlightElement.appendChild(titleElement);
557
558        conference.texts.forEach(function (text) {
559            const textItemElement = document.createElement('div');
560            textItemElement.classList.add('top-horizontal-highlight-data');
561            textItemElement.innerText = text;
562
563            // hide the last element on small screens
564            if (conference.texts.indexOf(text) === conference.texts.length - 1) {
565                textItemElement.classList.add('d-none', 'd-lg-inline-flex');
566            }
567
568            highlightElement.appendChild(textItemElement);
569        });
570    });
571</script>
571
572
573<style>
574    .top-horizontal-highlights {
575        font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
576        font-size: 14px;
577        position: relative;
578        width: 100%;
579        z-index: 10;
580    }
581
582    .top-horizontal-highlights.sfcon { background: #4c1d95; }
583    .top-horizontal-highlights.sfcon:hover { background: #5b21b6; }
584    .top-horizontal-highlights.sflive { background: #db2777; }
585    .top-horizontal-highlights.sflive:hover { background: #ec4899; }
586    .top-horizontal-highlights.sfonline { background: #1d4ed8; }
587    .top-horizontal-highlights.sfonline:hover { background: #2563eb; }
588    .top-horizontal-highlights a::after { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 100%; }
589    .top-horizontal-highlight { align-items: center; display: flex; flex-wrap: nowrap; padding: 8px 0; }
590    a.top-horizontal-highlight-title, a.top-horizontal-highlight-title:hover { color: rgba(255, 255, 255, 0.95); font-weight: 600; }
591    .top-horizontal-highlight-data { color: rgba(255, 255, 255, 0.85); display: none; font-size: 14px; margin-left: 30px; }
592    @media (min-width: 768px) {
593        .top-horizontal-highlights { font-size: 16px; height: 48px; }
594        .top-horizontal-highlight { padding: 12px 0; }
595        .top-horizontal-highlight-data { display: block; margin-left: 20px; }
596    }
597    @media (min-width: 1024px) {
598        .top-horizontal-highlight-data { display: block; margin-left: 35px; }
599    }
600
601    .dark-theme .top-horizontal-highlights.sfcon { background: #6326c0; }
602    .dark-theme .top-horizontal-highlights.sfcon:hover { background: #5b21b6; }
603    .dark-theme .top-horizontal-highlights.sflive { background: #be185d; }
604    .dark-theme .top-horizontal-highlights.sflive:hover { background: #db2777; }
605    .dark-theme .top-horizontal-highlights.sfonline { background: #1d4ed8; }
606    .dark-theme .top-horizontal-highlights.sfonline:hover { background: #2563eb; }
607</style>
608
609<div class="top-horizontal-highlights">
610    <div class="ui-page-container ui-page-container-wide">
611        <div class="top-horizontal-highlight">
612        </div>
613    </div>
614</div>
615
616                            </aside>
617        
618                        
619            <nav class="breadcrumb-nav d-none d-sm-block" aria-label="breadcrumb">
620            <div class="ui-page-container ui-page-container-wide">
621            <ol class="breadcrumb ui-text-muted flex-nowrap pt-2">
622                                                            <li class="breadcrumb-item ">
623                            <a href="/" class="ui-link-muted">Home</a>
624                        </li>
625                                                                                <li class="breadcrumb-item text-truncate">
626                            <a href="/doc" class="ui-link-muted">Documentation</a>
627                        </li>
628                                                                                <li class="breadcrumb-item text-truncate">
629                            <a href="/doc/current/contributing/index.html" class="ui-link-muted">Contributing</a>
630                        </li>
631                                                </ol>
632            </div>
633        </nav>
634    
635    
635<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"\/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@id":"\/doc","name":"Documentation"}},{"@type":"ListItem","position":3,"item":{"@id":"\/doc\/current\/contributing\/index.html","name":"Contributing"}}]}</script>
635
636
637
638        
639        <main id="main-content" class="ui-page-main-content ">
640                <div class="ui-page-container ui-page-container-wide">
641                
642        
643        <div class="ui-page-grid-content-left-sidebar-right-sidebar">
644            <aside class="sidebar sidebar-left">
645                    <div class="ui-sidebar-content-sticky">
646        <div class="doc-sidebar-search mt-2 mb-3">
647            <button type="button" class="form-search-input-button d-flex flex-fill align-items-center flex-nowrap w-100 rounded-5 ui-border-primary ui-text-muted ui-text-sm px-2 py-1 ui-hover-outline-link ui-cursor-pointer">
648                
649
650    
651<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="me-2"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6"></path></svg>
652 Search Symfony Docs
653            </button>
654        </div>
655
656                
657            <div class="doc-action doc-alternative-selector branch-selector">
658            <span class="label">Version:</span>
659
660            <select class="form-select ui-text-sm">
661                                    <optgroup label="Maintained Versions">
662                                                    <option   data-url="https://symfony.com/doc/8.2/contributing/index.html">
663                                8.2 (dev)                            </option>
664                                                    <option selected  data-url="https://symfony.com/doc/current/contributing/index.html">
665                                8.1 (current)                            </option>
666                                                    <option   data-url="https://symfony.com/doc/7.4/contributing/index.html">
667                                7.4                             </option>
668                                                    <option   data-url="https://symfony.com/doc/6.4/contributing/index.html">
669                                6.4                             </option>
670                                            </optgroup>
671                
672                                    <optgroup label="Unmaintained Versions">
673                                                    <option   data-url="https://symfony.com/doc/8.0/contributing/index.html">
674                            8.0                             </option>
675                                                    <option   data-url="https://symfony.com/doc/7.3/contributing/index.html">
676                            7.3                             </option>
677                                                    <option   data-url="https://symfony.com/doc/7.2/contributing/index.html">
678                            7.2                             </option>
679                                                    <option   data-url="https://symfony.com/doc/7.1/contributing/index.html">
680                            7.1                             </option>
681                                                    <option   data-url="https://symfony.com/doc/7.0/contributing/index.html">
682                            7.0                             </option>
683                                                    <option   data-url="https://symfony.com/doc/6.3/contributing/index.html">
684                            6.3                             </option>
685                                                    <option   data-url="https://symfony.com/doc/6.2/contributing/index.html">
686                            6.2                             </option>
687                                                    <option   data-url="https://symfony.com/doc/6.1/contributing/index.html">
688                            6.1                             </option>
689                                                    <option   data-url="https://symfony.com/doc/6.0/contributing/index.html">
690                            6.0                             </option>
691                                                    <option   data-url="https://symfony.com/doc/5.x/contributing/index.html">
692                            5.x                             </option>
693                                                    <option   data-url="https://symfony.com/doc/4.x/contributing/index.html">
694                            4.x                             </option>
695                                                    <option   data-url="https://symfony.com/doc/3.x/contributing/index.html">
696                            3.x                             </option>
697                                                    <option   data-url="https://symfony.com/doc/2.x/contributing/index.html">
698                            2.x                             </option>
699                                            </optgroup>
700                            </select>
701        </div>
702    
703
704        <div class="doc-sidebar-menu">
705                <div class="toctree-wrapper toctree-programmatic toctree-size-md">
706        
707            <ul class="toctree toctree-level-1 toctree-length-0">
708            </ul>
709
710    </div>
711        </div>
712    </div>
713
714            </aside>
715
716            <article class="content" lang="en">
717                    
718<div  class="ui-heading">
719        <h1 id="contributing"  class="ui-heading-title">
720        
721                    Contributing
722        
723            </h1>
724
725    </div>
726    
727                        <a class="doc-action content-edit ui-link-muted mb-2" href="https://github.com/symfony/symfony-docs/edit/8.1/contributing/index.rst" target="_blank" rel="noopener">
728            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" height="18" stroke="currentColor">
729                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" />
730            </svg>
731            Edit this page
732        </a>
733    
734    
735    
736    
737    <div  class="ui-prose">
738    <div class="section">
739
740<p>Symfony is an open source, community-driven project, and there are many ways to contribute:</p>
741<ul>
742    <li><a href="code.html#reporting-a-bug" class="reference internal">Report a Bug</a> you found (no setup needed)</li>
743<li><a href="reviews.html" class="reference internal">Review and Triage</a> issues and pull
744requests to help move them forward (no coding needed)</li>
745<li><a href="code.html" class="reference internal">Contribute Code</a> (bug fixes and features)</li>
746<li><a href="doc.html" class="reference internal">Contribute Docs</a> to improve the documentation
747(small fixes can be done online, without installing anything)</li>
748<li><a href="translation.html" class="reference internal">Contribute Translations</a> to translate the
749Symfony error and validation messages</li>
750</ul>
751<p>One special case: if you found a <strong>security issue</strong>, don't report it publicly.
752Follow the <a href="../contributing/code/security.html" class="reference internal">security procedure</a> instead.</p>
753<p>New to contributing? The <code translate="no" class="notranslate">#contribs</code> and <code translate="no" class="notranslate">#mentoring</code> channels on the
754<a href="https://symfony.com/slack-invite" class="reference external">Symfony Slack</a>
754 are there to help.</p>
755<ul>
756    <li><p><strong>Code</strong></p>
757<ul>
758    <li><a href="code.html" class="reference internal">Contributing Code</a></li>
759<li><a href="../contributing/code/standards.html" class="reference internal">Coding Standards</a></li>
760<li><a href="../contributing/code/conventions.html" class="reference internal">Code Conventions</a></li>
761<li><a href="../contributing/code/bc.html" class="reference internal">Backward Compatibility</a></li>
762<li><a href="../contributing/code/security.html" class="reference internal">Security Issues</a></li>
763<li><a href="../contributing/code/maintenance.html" class="reference internal">Maintenance</a></li>
764<li><a href="../contributing/code/releases.html" class="reference internal">Release Process</a></li>
765</ul></li>
766<li><p><strong>Documentation</strong></p>
767<ul>
768    <li><a href="doc.html" class="reference internal">Contributing Documentation</a></li>
769<li><a href="../contributing/documentation/format.html" class="reference internal">Format</a></li>
770<li><a href="../contributing/documentation/standards.html" class="reference internal">Documentation Standards</a></li>
771</ul></li>
772<li><p><strong>Translations</strong></p>
773<ul>
774    <li><a href="translation.html" class="reference internal">Contributing Translations</a></li>
775</ul></li>
776<li><p><strong>Reviews</strong></p>
777<ul>
778    <li><a href="reviews.html" class="reference internal">Reviewing Issues and Pull Requests</a></li>
779</ul></li>
780<li><p><strong>Governance</strong></p>
781<ul>
782    <li><a href="core_team.html" class="reference internal">The Core Team</a></li>
783</ul></li>
784<li><p><strong>Code of Conduct</strong></p>
785<ul>
786    <li><a href="../contributing/code_of_conduct/code_of_conduct.html" class="reference internal">Code of Conduct</a></li>
787<li><a href="../contributing/code_of_conduct/reporting_guidelines.html" class="reference internal">Reporting Guidelines</a></li>
788<li><a href="../contributing/code_of_conduct/care_team.html" class="reference internal">CARE Team</a></li>
789<li><a href="../contributing/code_of_conduct/concrete_example_document.html" class="reference internal">Code of Conduct: Concrete Example Document</a></li>
790</ul></li>
791<li><p><strong>Diversity</strong></p>
792<ul>
793    <li><a href="../contributing/diversity/governance.html" class="reference internal">Governance</a></li>
794<li><a href="../contributing/diversity/mentoring.html" class="reference internal">Mentoring</a></li>
795</ul></li>
796</ul>
797</div>
798
799    
800
801    
802</div>
803
804    
804<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"TechArticle","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/symfony.com\/doc\/current\/contributing\/index.html"},"headline":"Contributing","inLanguage":"en","author":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}},"publisher":{"@type":"Organization","name":"Symfony","url":"https:\/\/symfony.com","logo":{"@type":"ImageObject","url":"https:\/\/symfony.com\/images\/logos\/sf-positive.png"}}}</script>
804
805
806    
807    <div class="ui-text-sm ui-text-muted mt-4">
808        This work, including the code samples, is licensed under a
809        <a class="ui-link-muted" rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons BY-SA 3.0</a> license.
810    </div>
811
812    <div id="doc-mobile-shortcuts-bar">
813        <div>
814            <details class="toc">
815                <summary>
816                    
817
818
819<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 6h11M9 12h11M9 18h11M5 6v.01M5 12v.01M5 18v.01"></path></svg>
820 TOC
821                </summary>
822
823                <ul class="toc-contents toctree is-empty"></ul>
824            </details>
825        </div>
826
827        <div>
828            <button type="button" class="form-search-input-button ui-button-text text-decoration-none d-flex flex-fill align-items-center flex-nowrap w-100 shadow-none">
829                
830
831
832<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6"></path></svg>
833 Search
834            </button>
835        </div>
836
837        <div>
838            <details class="version">
839                <summary>
840                    
841
842
843<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 7a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zM7 7v10M4 8v8"></path></svg>
844 Version
845                </summary>
846
847                <div class="version-contents is-empty"></div>
848            </details>
849        </div>
850    </div>
851
852            </article>
853
854            <aside class="sidebar sidebar-right">
855                    <div class="ui-sidebar-content-sticky">
856                    
857        <div class="mb-3 px-1">
858                                <p class="ui-text-sm text-center mb-1">
859                                    <strong>Symfony 8.1</strong>
860                                <a href="/backers">backers</a>
861            </p>
862                            <div class="doc-backer">
863                    <div class="backer_logo"><a class="stretched-link" href="https://les-tilleuls.coop/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?>
864<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
865    viewBox="0 0 1197.2 169.48" width="1197.2" height="169.48" style="enable-background:new 0 0 1197.2 169.48;" xml:space="preserve">
866<style type="text/css">
867    .lestilleuls-logo-st0{fill:#EC4D28;}
868    .dark-theme .lestilleuls-logo-wordmark-dark { fill: #fff; }
869</style>
870<g>
871    <g>
872        <g>
873            <path class="lestilleuls-logo-wordmark-dark" d="M385.53,96.15h40v15h-40V96.15z"/>
874            <path class="lestilleuls-logo-wordmark-dark" d="M505.53,139.48h-20v-22.26c0-11.99,8.31-21.77,20-24.41L505.53,139.48z"/>
875            <path class="lestilleuls-logo-wordmark-dark" d="M745.53,137.09c-3.41,0.99-7.79,1.92-13.17,2.77c-5.37,0.85-11.02,1.28-16.93,1.28c-6,0-10-0.81-13.98-2.44
876                c-3.99-1.62-7.14-3.9-9.47-6.83c-2.33-2.93-3.99-6.43-4.97-10.49c-0.99-4.06-1.48-8.53-1.48-13.4V67.82h20v37.75
877                c0,6.49,0.85,11.19,2.56,14.07c1.7,2.89,3.89,4.33,8.56,4.33c1.43,0,2.96-0.07,4.58-0.2c1.62-0.13,3.05-0.29,4.31-0.47V67.82h20
878                V137.09z"/>
879            <g>
880                <path class="lestilleuls-logo-st0" d="M1054.11,136.58c-5.77-3.05-10.31-7.4-13.61-13.07c-3.3-5.66-4.96-12.28-4.96-19.86
881                    c0-7.49,1.67-14.09,5.02-19.79c3.35-5.71,7.93-10.08,13.75-13.13c5.82-3.05,12.34-4.57,19.56-4.57c7.23,0,13.75,1.52,19.56,4.57
882                    c5.82,3.05,10.4,7.43,13.75,13.13c3.35,5.71,5.02,12.3,5.02,19.79c0,7.49-1.7,14.09-5.09,19.79
883                    c-3.39,5.71-8.02,10.08-13.88,13.13c-5.86,3.05-12.41,4.57-19.63,4.57C1066.38,141.15,1059.88,139.63,1054.11,136.58z
884                     M1084.64,117.11c3.04-3.13,4.56-7.62,4.56-13.46c0-5.84-1.48-10.32-4.43-13.46c-2.95-3.13-6.59-4.7-10.91-4.7
885                    c-4.41,0-8.06,1.55-10.97,4.64c-2.91,3.1-4.36,7.6-4.36,13.53c0,5.84,1.43,10.32,4.3,13.46c2.86,3.14,6.45,4.7,10.77,4.7
886                    C1077.92,121.81,1081.6,120.25,1084.64,117.11z"/>
887            </g>
888            <g>
889                <path class="lestilleuls-logo-st0" d="M969.11,136.58c-5.77-3.05-10.31-7.4-13.61-13.07c-3.3-5.66-4.96-12.28-4.96-19.86
890                    c0-7.49,1.67-14.09,5.02-19.79c3.35-5.71,7.93-10.08,13.75-13.13c5.82-3.05,12.34-4.57,19.56-4.57s13.75,1.52,19.56,4.57
891                    c5.82,3.05,10.4,7.43,13.75,13.13c3.35,5.71,5.02,12.3,5.02,19.79c0,7.49-1.7,14.09-5.09,19.79
892                    c-3.39,5.71-8.02,10.08-13.88,13.13c-5.86,3.05-12.41,4.57-19.63,4.57C981.38,141.15,974.88,139.63,969.11,136.58z
893                     M999.64,117.11c3.04-3.13,4.56-7.62,4.56-13.46c0-5.84-1.48-10.32-4.43-13.46c-2.95-3.13-6.59-4.7-10.91-4.7
894                    c-4.41,0-8.06,1.55-10.97,4.64c-2.91,3.1-4.36,7.6-4.36,13.53c0,5.84,1.43,10.32,4.3,13.46c2.86,3.14,6.45,4.7,10.77,4.7
895                    C992.92,121.81,996.6,120.25,999.64,117.11z"/>
896            </g>
897            <path class="lestilleuls-logo-st0" d="M945.13,129.56c-2.09-3.58-3.67-7.44-4.77-11.55c-2.85,2.53-6.21,3.81-10.09,3.81
898                c-4.32,0-7.91-1.57-10.77-4.7c-2.86-3.13-4.3-7.62-4.3-13.46c0-5.92,1.45-10.43,4.36-13.53c2.91-3.09,6.56-4.64,10.97-4.64
899                c3.84,0,7.13,1.24,9.89,3.72c1.11-4.05,2.7-7.87,4.79-11.43c1.48-2.52,3.16-4.84,5.02-6.98c-0.04-0.02-0.09-0.
89905-0.13-0.07
900                c-5.82-3.05-12.34-4.57-19.56-4.57s-13.75,1.52-19.56,4.57c-5.82,3.05-10.4,7.43-13.75,13.13c-3.35,5.71-5.02,12.3-5.02,19.79
901                c0,7.58,1.65,14.2,4.96,19.86c3.3,5.66,7.84,10.02,13.61,13.07c5.77,3.05,12.27,4.57,19.5,4.57c7.22,0,13.77-1.52,19.63-4.57
902                c0.06-0.03,0.11-0.07,0.17-0.1C948.25,134.35,946.58,132.05,945.13,129.56z"/>
903            <path class="lestilleuls-logo-wordmark-dark" d="M233.87,119.48h-35v-100c-12.51,4.03-20,16.13-20,29.33v90.67h55V119.48z"/>
904            <path class="lestilleuls-logo-wordmark-dark" d="M410.53,19.48v20h35v100h20v-100l18.33,0c11.05,0,20-8.95,20-20v0L410.53,19.48z"/>
905            <path class="lestilleuls-logo-wordmark-dark" d="M668.01,136.65c-1.08,0.54-2.53,1.08-4.33,1.62c-1.81,0.54-3.81,1.02-6.02,1.42c-2.21,0.41-4.58,0.74-7.1,1.02
906                c-2.53,0.27-5.05,0.41-7.58,0.41c-6.41,0-11.98-0.95-16.71-2.84c-4.74-1.89-8.66-4.49-11.77-7.78c-3.11-3.29-5.41-7.19-6.9-11.7
907                c-1.49-4.51-2.23-9.38-2.23-14.61c0-6.31,0.97-11.84,2.91-16.58c1.94-4.74,4.49-8.68,7.64-11.84c3.16-3.16,6.79-5.55,10.89-7.17
908                c4.1-1.62,8.32-2.44,12.65-2.44c10.1,0,18.09,3.09,23.95,9.27c5.86,6.18,8.8,15.27,8.8,27.27c0,1.17-0.05,2.46-0.14,3.86
909                c-0.09,1.4-0.18,2.64-0.27,3.72h-45.74c0.45,4.15,2.39,7.44,5.82,9.88c3.43,2.44,8.03,3.65,13.8,3.65c3.7,0,7.33-0.34,10.89-1.02
910                c1.11-0.21,2.17-0.44,3.15-0.68L668.01,136.65z M652.72,96.26c-0.09-1.71-0.39-3.38-0.88-5.01c-0.5-1.63-1.26-3.07-2.3-4.33
911                c-1.04-1.26-2.35-2.3-3.92-3.11c-1.58-0.81-3.54-1.22-5.89-1.22c-2.26,0-4.19,0.38-5.82,1.15c-1.62,0.77-2.98,1.78-4.06,3.04
912                c-1.08,1.26-1.92,2.73-2.5,4.4c-0.59,1.67-1.02,3.36-1.29,5.07H652.72z"/>
913            <path class="lestilleuls-logo-wordmark-dark" d="M371.13,105.81c-1.
91367-1.84-3.95-3.56-6.83-5.15c-2.89-1.59-6.54-3.21-10.96-4.85c-2.17-0.81-3.95-1.57-5.35-2.25
914                c-1.4-0.68-2.5-1.31-3.32-1.9c-0.81-0.59-1.35-1.2-1.62-1.83c-0.27-0.63-0.41-1.35-0.41-2.16c0-3.52,3.16-5.28,9.47-5.28
915                c3.43,0,6.52,0.32,9.27,0.95c2.56,0.59,4.93,1.26,7.15,2.01V68.54c-1.61-0.43-3.42-0.84-5.46-1.23
916                c-3.97-0.77-8.12-1.15-12.45-1.15c-8.66,0-15.47,1.94-20.43,5.82c-4.96,3.88-7.44,9.16-7.44,15.83c0,3.43,0.49,6.36,1.49,8.79
917                c0.99,2.44,2.39,4.53,4.2,6.29c1.8,1.76,3.99,3.27,6.56,4.53c2.57,1.26,5.43,2.48,8.59,3.65c4.06,1.54,7.08,2.91,9.07,4.13
918                c1.98,1.22,2.98,2.64,2.98,4.26c0,2.07-0.77,3.47-2.3,4.19c-1.54,0.72-4.15,1.08-7.85,1.08c-3.52,0-7.08-0.38-10.69-1.15
919                c-1.91-0.41-3.79-0.89-5.65-1.46l-8.29,14.65c1.62,0.72,4.53,1.62,8.73,2.71c4.19,1.08,9.45,1.62,15.76,1.62
920                c9.65,0,17.12-1.8,22.39-5.4c5.28-3.6,7.92-8.91,7.92-15.93c0-2.97-0.34-5.58-1.02-7.83C373.97,109.7,372.8,107.65,371.13,105.81
921                z"/>
922            <path class="lestilleuls-logo-wordmark-dark" d="M852.67,105.84c-1.67-1.84-3.95-3.56-6.83-5.15c-2.89-1.59-6.54-3.21-10.96-4.85c-2.17-0.81-3.95-1.57-5.35-2.25
923                c-1.4-0.68-2.5-1.31-3.32-1.9c-0.81-0.59-1.35-1.2-1.62-1.83c-0.27-0.63-0.41-1.35-0.41-2.16c0-3.52,3.16-5.28,9.47-5.28
924                c3.43,0,6.52,0.32,9.27,0.95c2.56,0.59,4.93,1.26,7.15,2.01V68.57c-1.61-0.43-3.42-0.84-5.46-1.23
925                c-3.97-0.77-8.12-1.15-12.45-1.15c-8.66,0-15.47,1.94-20.43,5.82c-4.96,3.88-7.44,9.16-7.44,15.83c0,3.43,0.49,6.36,1.49,8.79
926                c0.99,2.44,2.39,4.53,4.2,6.29c1.8,1.76,3.99,3.27,6.56,4.53c2.57,1.26,5.43,2.48,8.59,3.65c4.06,1.54,7.08,2.91,9.07,4.13
927                c1.98,1.22,2.98,2.64,2.98,4.26c0,2.07-0.77,3.47-2.3,4.19c-1.54,0.72-4.15,1.08-7.85,1.08c-3.52,0-7.08-0.38-10.69-1.15
928                c-1.91-0.41-3.79-0.89-5.65-1.46l-8.29,14.65c1.62,0.72,4.53,1.62,8.73,2.71c4.19,1.08,9.45,1.62,15.76,1.62
929                c9.65,0,17.12-1.8,22.39-5.4c5.28-3.6,7.92-8.91,7.92-15.93c0-2.97-0.34-5.58-1.02-7.83
930                C855.51,109.74,854.34,107.69,852.67,105.84z"/>
931            <path class="lestilleuls-logo-wordmark-dark" d="M553.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65
932                c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62
933                c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L553.72,141.15z"/>
934            <path class="lestilleuls-logo-wordmark-dark" d="M593.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65
935                c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62
936                c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L593.72,141.15z"/>
937            <path class="lestilleuls-logo-wordmark-dark" d="M793.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65
938                c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62
939                c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L793.72,141.15z"/>
940            <path class="lestilleuls-logo-st0" d="M507.2,72.82c0,3.8-1.19,6.7-3.58,8.69c-2.38,1.99-5.08,2.98-8.09,2.98s-5.71-0.99-8.09-2.98
941                c-2.38-1.99-3.58-4.88-3.58-8.69s1.19-6.7,3.58-8.69c2.38-1.99,5.08-2.98,8.09-2.98s5.71,0.99,8.09,2.98
942                C506.01,66.12,507.2,69.01,507.2,72.82z"/>
943            <path class="lestilleuls-logo-st0" d="M887.2,129.48c0,3.8-1.19,6.7-3.58,8.69c-2.38,1.99-5.08,2.98-8.09,2.98c-3.01,0-5.71-0.99-8.09-2.98
944                c-2.38-1.99-3.58-4.88-3.58-8.69c0-3.8,1.19-6.7,3.58-8.69c2.38-1.99,5.08-2.98,8.09-2.98c3.01,0,5.71,0.99,8.09,2.98
945                C886.01,122.78,887.2,125.68,887.2,129.48z"/>
946            <path class="lestilleuls-logo-st0" d="M1192.18,83.86c-3.35-5.71-7.93-10.08-13.75-13.13c-5.82-3.05-12.34-4.57-19.56-4.57s-13.75,1.52-19.56,4.57
947                c-5.82,3.05-10.4,7.43-13.75,13.13c-3.22,5.49-4.88,11.81-5,18.96h-0.02v66.67h20v-32.21c5.41,2.57,11.43,3.87,18.07,3.87
948                c7.22,0,13.77-1.52,19.63-4.57c5.86-3.05,10.49-7.43,13.88-13.13c3.39-5.7,5.09-12.3,5.09-19.79
948S1195.53,89.56,1192.18,83.86z
949                 M1169.64,117.11c-3.04,3.14-6.72,4.7-11.04,4.7c-4.32,0-7.91-1.57-10.77-4.7c-2.86-3.13-4.3-7.62-4.3-13.46
950                c0-5.92,1.45-10.43,4.36-13.53c2.91-3.09,6.56-4.64,10.97-4.64c4.32,0,7.95,1.57,10.91,4.7c2.95,3.14,4.43,7.62,4.43,13.46
951                C1174.2,109.49,1172.68,113.98,1169.64,117.11z"/>
952            <path class="lestilleuls-logo-wordmark-dark" d="M307.26,136.87c-1.08,0.54-2.53,1.08-4.33,1.62c-1.81,0.54-3.81,1.02-6.02,1.42c-2.21,0.41-4.58,0.74-7.1,1.02
953                c-2.53,0.27-5.05,0.41-7.58,0.41c-6.41,0-11.98-0.95-16.71-2.84c-4.74-1.89-8.66-4.49-11.77-7.78c-3.11-3.29-5.41-7.19-6.9-11.7
954                c-1.49-4.51-2.23-9.38-2.23-14.61c0-6.31,0.97-11.84,2.91-16.58c1.94-4.74,4.49-8.68,7.64-11.84c3.16-3.16,6.79-5.55,10.89-7.17
955                c4.1-1.62,8.32-2.44,12.65-2.44c10.1,0,18.09,3.09,23.95,9.27c5.86,6.18,8.8,15.27,8.8,27.27c0,1.17-0.05,2.46-0.14,3.86
956                c-0.09,1.4-0.18,2.64-0.27,3.72h-45.74c0.45,4.15,2.39,7.44,5.82,9.88c3.43,2.44,8.03,3.65,13.8,3.65c3.7,0,7.33-0.34,10.89-1.02
957                c1.11-0.21,2.17-0.44,3.15-0.68L307.26,136.87z M291.97,96.48c-0.09-1.71-0.39-3.38-0.88-5.01c-0.5-1.63-1.26-3.07-2.3-4.33
958                c-1.04-1.26-2.35-2.3-3.92-3.11c-1.58-0.81-3.54-1.22-5.89-1.22c-2.26,0-4.19,0.38-5.82,1.15c-1.62,0.77-2.98,1.78-4.06,3.04
959                c-1.08,1.26-1.92,2.73-2.5,4.4c-0.59,1.67-1.02,3.36-1.29,5.07H291.97z"/>
960        </g>
961        <g>
962            <path class="lestilleuls-logo-st0" d="M84.52,75.41C70.6,75.05,59.04,65.02,56.34,51.8c-0.93-0.26-1.82-0.61-2.66-1.06
963                c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14c0-2.7,0.6-5.07,1.81-7.12c1.2-2.05,2.85-3.63,4.94-4.72
964                c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65c2.09,1.1,3.74,2.67,4.94,4.72c1.2,2.05,1.81,4.42,1.81,7.12
965                c0,2.69-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72c-0.97,0.5-1.99,0.89-3.07,1.16c2.54,8.68,10.43,15.1,19.84,15.44
966                l0-30.84c-0.36-0.15-0.71-0.31-1.05-0.49c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14c0-2.69,0.6-5.07,1.81-7.12
967                c1.2-2.05,2.85-3.63,4.94-4.72c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65c2.09,1.1,3.74,2.67,4.94,4.72
968                c1.2,2.05,1.81,4.42,1.81,7.12c0,2.7-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72c-0.3,0.16-0.6,0.3-0.91,0.43v45
969                c9.96-3.92,17.42-12.85,19.24-23.68c-0.8-0.25-1.58-0.57-2.31-0.96c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14
970                c0-2.7,0.6-5.07,1.81-7.12c1.2-2.05,2.85-3.63,4.94-4.72c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65
971                c2.09,1.1,3.74,2.67,4.94,4.72c1.2,2.05,1.81,4.42,1.81,7.12c0,2.69-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72
972                c-1.14,0.59-2.35,1.02-3.64,1.29c-2.14,15.16-13.02,27.55-27.36,31.89v11.73c19.05-2.1,35.19-13.96,43.32-30.45V33.7
973                c0-18.61-15.09-33.7-33.7-33.7h-44.2C46.19,9.66,35.57,27.13,35.57,47.03c0,24.03,15.48,44.5,36.99,51.98v13.52
974                c-28.74-7.92-49.91-34.28-49.91-65.5c0-18.24,7.24-34.81,18.98-47.03H33.7C15.09,0,0,15.09,0,33.7v72.56
975                c0,18.61,15.09,33.7,33.7,33.7h50.83V75.41z"/>
976            <path class="lestilleuls-logo-st0" d="M126.19,44.95c0-2.1-0.53-3.71-1.59-4.84c-1.06-1.13-2.37-1.69-3.92-1.69c-1.59,0-2.9,0.56-3.95,1.67
977                c-1.05,1.11-1.57,2.74-1.57,4.87c0,2.1,0.51,3.71,1.55,4.84c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69
978                C125.64,48.66,126.19,47.05,126.19,44.95z"/>
979            <path class="lestilleuls-logo-st0" d="M96.63,114.69l0,25.27h9.63c18.61,0,33.7-15.09,33.7-33.7V93.61C128.86,105.36,113.64,113.18,96.63,114.69z"
980                />
981            <path class="lestilleuls-logo-st0" d="M60.78,32.36c-1.59,0-2.9,0.56-3.95,1.67c-1.05,1.11-1.57,2.73-1.57,4.87c0,2.1,0.51,3.71,1.55,4.84
982                c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69c1.09-1.13,1.64-2.74,1.64-4.84c0-2.1-0.53-3.71-1.59-4.84
983                C63.64,32.92,62.34,32.36,60.78,32.36z"/>
984            <path class="lestilleuls-logo-st0" d="M90.58,17.62c-1.59,0-2.9,0.56-3.95,1.67c-1.05,1.11-1.57,2.73-1.57,4.86c0,2.1,0.51,3.71,1.55,4.84
985                c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69c1.09-1.13,1.64-2.74,1.64-4.84c0-2.1-0.53-3.71-1.59-4.84
986                C93.44,18.19,92.13,17.62,90.58,17.62z"/>
987        </g>
988    </g>
989</g>
990</svg>
991
992
993</a></div>
994                </div>
995                            <div class="doc-backer">
996                    <div class="backer_logo"><a class="stretched-link" href="https://www.shopware.com/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?>
997<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
998	 viewBox="-2 -2 516 114" width="516" height="114" style="enable-background:new 0 0 511.9 110;" xml:space="preserve">
999<style type="text/css">
1000	.backer-logo-shopware .st0{fill:#189EFF;}
1001</style>
1002<g class="backer-logo-shopware">
1003	<g>
1004		<path class="st0" d="M150.2,55.5c-4.7-2-8.5-3.9-8.5-6.9c0-2.1,2.4-4.2,6.5-4.2c3.7,0,6.8,0.9,10.1,2.3
1005			c0.9,0.4,2.3,0.5,3.1-0.9l1.6-3.3c0.6-1.2,0.1-2.7-1-3.5c-2.3-1.5-7.2-3.5-13.7-3.5c-11.4,0-16.1,6.9-16.1,12.8
1006			c0,7.7,6,11.6,13.2,14.9c6.5,2.9,10.1,5,10.1,8.1c0,2.7-2.2,4.6-6.2,4.6c-5.6,0-8.9-1.9-11.7-3.5c-1.2-0.7-2.5-0.4-3.1,0.6
1007			l-2.1,4.4c-0.5,1,0.1,1.9,0.8,2.4c2.6,1.8,8,4.8,15.5,4.8c10.5,0,16.8-6.4,16.8-13.7C165.3,62.4,158.8,59.2,150.2,55.5z"/>
1008	</g>
1009	<g>
1010		<path class="st0" d="M87.8,98c-4.8-3.6-11.8-6.3-19.3-9.2c-8.9-3.4-19-7.3-26.5-13.4C33.4,68.6,29.2,60,29.2,49.1
1011			c0-9.8,4-18.1,11.7-24.1c8.6-6.8,21.6-10.3,37.6-10.3c4.4,0,8.7,0.3,12.6,0.8c0.3,0,0.7-0.1,0.8-0.5c0.2-0.3,0.1-0.7-0.2-0.9
1012			C81.7,5,68.6,0,55,0C40.3,0,26.5,5.7,16.1,16.1C5.7,26.5,0,40.3,0,55c0,
101214.7,5.7,28.5,16.1,38.9C26.5,104.3,40.3,110,55,110
1013			c11.9,0,23.2-3.7,32.7-10.8c0.2-0.2,0.3-0.4,0.3-0.6C88.1,98.4,88,98.2,87.8,98z"/>
1014		<path class="st0" d="M109.8,49.9c0-0.2-0.1-0.4-0.3-0.5C98.1,39.9,88.8,36,77.5,36c-6,0-10.6,1.2-13.7,3.6
1015			c-2.7,2.1-4.1,4.9-4.1,8.3c0,9.4,11.6,13.8,24.9,18.8c6.9,2.6,14,5.2,20.6,8.9c0.1,0.1,0.2,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1
1016			c0.2-0.1,0.4-0.2,0.5-0.5c2.5-6.4,3.8-13.2,3.8-20.1C110.1,53.4,110,51.7,109.8,49.9z"/>
1017	</g>
1018	<path class="st0" d="M426.1,84.3c1.4-0.2,2.4-1.2,2.4-2.5V57.9c0-12.2-1.5-21.7-17.2-21.7c-9,0-16,2.4-16.9,2.8
1019		c-1.2,0.4-1.9,1.2-1.6,2.9l1,4c0.3,1.4,1.3,2.3,2.8,2c2.5-0.7,8.1-2.3,13.7-2.3c6.2,0,8.1,3.5,7.9,11.3c0,0-4.8-1.5-9.9-1.5
1020		c-12.6,0-19.6,6.8-19.6,15.8c0,10.2,6.5,13.7,15.7,13.7c7.5,0,15.3-0.1,18.5-0.3L426.1,84.3z M418,75.6c-1.5,2.4-6.8,1.8-11.4,1.7
1021		c-5.1-0.1-7.6-1.9-7.6-6.2c0-5.1,4.4-8.1,10.1-8.1c4.5,0,8.3,1.3,8.9,1.7L418,75.6L418,75.6z"/>
1022	<path class="st0" d="M506.3,35.7c3.1,0,5.6-2.5,5.6-5.6c0-3.1-2.5-5.6-5.6-5.6s-5.6,2.5-5.6,5.6
1023		C500.7,33.2,503.2,35.7,506.3,35.7z M506.3,25.4c2.6,0,4.7,2.1,4.7,4.8s-2.1,4.8-4.7,4.8c-2.6,0-4.7-2.1-4.7-4.8
1024		S503.7,25.4,506.3,25.4z"/>
1025	<path class="st0" d="M504.4,32.9h0.5c0.1,0,0.2-0.1,0.2-0.2v-2h1.2l1,2.1c0,0.1,0.1,0.1,0.2,0.1h0.6
1026		c0.1,0,0.2-0.1,0.1-0.2l-1.1-2c0.7-0.3,1.2-0.9,1.2-1.6c0-1-0.8-1.7-1.8-1.7h-2.2c-0.1,0-0.2,0.1-0.2,0.2v5.3
1027		C504.3,32.9,504.3,32.9,504.4,32.9z M505.1,28.1h1.4c0.5,0,1,0.4,1,1c0,0.6-0.5,1-1,1h-1.4V28.1z"/>
1028	<path class="st0" d="M196.6,35.7c-7.4,0-12.5,4.1-13.6,4.9v-21c0-1.1-1.1-2.2-2.2-2.2H175c-1.2,0-2.2,1.1-2.2,2.2
1029		v63c0,1.2,1,2.2,2.2,2.2h5.6c1.4,0,2.3-0.9,2.3-2.2V52.2c1-2,5.1-6.8,12.3-6.8c6.1,0,9.4,4.6,9.4,12.3v24.9c0,1.2,1,2.2,2.2,2.2
1030		h5.7c1.1,0,2.2-1,2.2-2.2V57.9C214.8,45.1,209.9,35.7,196.6,35.7z"/>
1031	<path class="st0" d="M315.8,58.4c-0.6-16-7.2-22.7-22.7-22.7c-7.4,0-16.2,2.2-17.5,2.8c-1.6,0.7-2.8,1.5-2.8,2.6
1032		V42v3.4v11V58v43c0,1.2,1,2.2,2.2,2.2h4.7c1.5,0,2.4-0.9,2.4-2.2l0-16.9c1.4,0.4,8.7,1,14.8,0.8c10.9-0.3,18.2-8.2,18.8-21.6
1033		C315.9,61.4,315.8,58.4,315.8,58.4z M305.9,63.2c-0.2,9.1-2.8,13.1-10.5,13.5c-3.8,0.2-12.7-0.8-12.7-0.8c-0.4-0.1-0.6-0.3-0.6-0.6
1034		l0-18.3V46.5c0-0.3,0.2-0.5,0.5-0.5c1-0.1,4.9-1.3,10.4-1.3c9.3,0,12.5,1.4,12.9,13.1C306,59.3,306,61.5,305.9,63.2z"/>
1035	<path class="st0" d="M383.2,36.7h-4.3c-1.2,0-3,0-3.6,1.4l-7.5,27.1h-0.2L355,36.8c-0.2-0.6-0.9-1.1-2-1.1h-0.7
1036		c-0.9,0-1.6,0.5-1.9,1.1l-12.7,28.3h-0.2l-7.7-27c-0.2-0.9-1.2-1.4-2-1.4h-6.1c-1.6,0-2.3,1.2-1.6,2.7l13.7,44.3
1037		c0.2,0.7,0.9,1.2,1.9,1.2h0.6c1,0,1.6-0.5,1.8-1.1l14.5-32h0.2L367,83.7c0.3,0.6,1,1.1,2,1.1h0.4c1,0,1.9-0.5,2.1-1.2L385,39.4
1038		C385.7,37.9,384.8,36.7,383.2,36.7z"/>
1039	<path class="st0" d="M458.2,36.3c-0.2,0-0.5,0-0.7,0c-0.4,0-0.8,0-1.2,0c-2.4,0-4.8,0.1-7,0.2l0,0
1040		c-4.2,0.2-6.7,0.5-8.5,0.7c0,0-1.1,0.1-2.5,0.3c-0.9,0.1-1.5,0.5-1.9,1c-0.3,0.3-0.4,0.7-0.4,1.1v0.2v0.9V44v9.5v29.1
1041		c0,1.2,1,2.2,2.2,2.2h4.7c1.9,0,3.3-0.2,3.3-2.2V53.5l0,0v-6.7c0-0.3,0.4-0.6,0.7-0.8c1.1-0.7,3.9-1.2,9.5-1.2c0.5,0,0.9,0,1.3,0
1042		c1.3,0.1,3.3,0.5,3.9,0.9c1,0.5,2.2,0.2,2.9-1.1l2.4-4C468.3,37.5,462.7,36.3,458.2,36.3z"/>
1043	<path class="st0" d="M490.4,35.7C476.3,35.7,467,47,467,60.2c0,13.4,9.3,24.6,23.5,24.6c7.8,0,14-2.8,17.4-5.8
1044		c1.4-1.2,1-2.1,0.2-3.2l-2.8-4.3c-0.8-1.2-1.7-0.9-2.8-0.2c-2.8,2-6.1,4-11.5,4c-8.2,0-13.9-6.5-14-12.8h32.5c1,0,2-0.8,2.1-2
1045		c0.1-0.8,0.2-2.4,0.2-3.3C511.9,44.8,502.6,35.7,490.4,35.7z M477.6,55c0.7-5.9,5.2-10.7,12.6-10.7c6.9,0,11.4,5,11.6,10.7H477.6z"
1046		/>
1047	<path class="st0" d="M264.6,50.2c-1.1-3-2.5-5.6-4.5-7.8s-4.2-3.8-6.8-5s-6.4-1.8-9.5-1.8s-6.9,0.6-9.5,1.8
1048		s-4.9,2.8-6.9,5c-1.9,2.2-3.4,4.8-4.5,7.8c-1.1,3-1.6,6.4-1.6,10c0,3.7,0.5,7.1,1.6,10.1s2.6,5.6,4.5,7.7c1.9,2.2,4.2,3.8,6.9,5
1049		s6.4,1.8,9.5,1.8s6.9-0.6,9.5-1.8s4.9-2.8,6.8-5c1.9-2.2,3.4-4.7,4.5-7.7s1.6-6.4,1.6-10.1C266.2,56.6,265.7,53.3,264.6,50.2z
1050		 M243.5,76.7c-8.5,0-12.8-7.2-12.8-16.1s4.3-16.1,12.8-16.1s12.8,7.2,12.8,16.1S252,76.7,243.5,76.7z"/>
1051</g>
1052</svg>
1053
1054
1055</a></div>
1056                </div>
1057                            <div class="doc-backer">
1058                    <div class="backer_logo"><a class="stretched-link" href="https://typo3.com/" target="_blank" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" width="150.17" height="40.08" viewBox="0 0 150.
105817 40.08" fill="currentColor"><path d="M29.74,27.38c-.54.16-1.11.25-1.68.24-5,0-12.45-17.64-12.45-23.5,0-2.17.51-2.89,1.23-3.5C10.67,1.34,3.26,3.62.84,6.48.23,7.47-.05,8.62,0,9.78,0,18.94,9.79,39.78,16.69,39.78c3.19,0,8.57-5.25,13-12.35" fill="#ff8700"/><path d="M26.52,0C32.9,0,39.29,1,39.29,4.63c0,7.31-4.64,16.16-7,16.16-4.22,0-9.47-11.73-9.47-17.6,0-2.68,1-3.19,3.71-3.19" fill="#ff8700"/><path d="M60.68,12.95v26.83h-3.74V12.95h-6.62v-3.27h17v3.27h-6.64Z"/><path d="M80.38,25.81v14h-3.87v-14l-7.7-16.13h4.13l5.67,12.51,5.68-12.51h3.88l-7.79,16.13Z"/><path d="M100.07,28.43h-3.61v11.35h-3.74V9.68s3.69-.3,7.26-.3c6.54,0,8.43,4,8.43,9.33,0,6.57-2.24,9.72-8.34,9.72ZM100.5,12.48c-1.34,0-2.67.08-4,.25v12.55h4c2.41,0,4.08-1.59,4.08-6.28,0-4.29-1.03-6.52-4.08-6.52Z"/><path d="M122.34,40.08c-7.09,0-9-5.16-9-15.69s1.89-15,9-15,9,4.9,9,15c0,10.53-1.9,15.69-9,15.69ZM122.34,12.52c-3.87,0-5.16,2.62-5.16,12.08s1.29,12.34,5.16,12.34,5.16-3.09,5.16-12.34-1.33-12.08-5.16-12.08Z"/><path d="M142.9,40.08c-1.9-.08-3.78-.33-5.64-.73v-3.23c1.84.39,3.71.62,5.59.69,2.2,0,3.62-1.8,3.62-5.11,0-4-.65-6-3.7-6h-3.53v-3.12h3.1c3.48,0,3.65-3.57,3.65-5.29,0-3.4-1.07-4.77-3.22-4.77-1.78.07-3.55.32-5.29.73v-3.14c1.7-.42,3.45-.66,5.2-.73,4.43,0,7,1.89,7,8.3,0,2.92-.9,5.5-3.27,6.23,2.76.37,3.76,3.14,3.76,7.37,0,6.39-2.5,8.8-7.27,8.8Z"/></svg>
1059
1060
1061</a></div>
1062                </div>
1063                            <div class="doc-backer">
1064                    <div class="backer_logo"><a class="stretched-link" href="https://l.rw.rw/symfony8.0_backers" target="_blank" rel="noopener"><svg width="420" height="123" viewBox="0 0 420 123" fill="none" xmlns="http://www.w3.org/2000/svg">
1065<path d="M22.6253 89.9249L12.2478 96.0802C10.84 97.0059 11.4833 98.5972 12.2478 98.9176L52.5505 121.5C54.9311 122.833 57.8642 122.833 60.2448 121.5L101.081 98.6186C102.319 97.8858 102.116 96.396 101.081 95.8937L90.1088 89.9649C89.1825 89.3541 87.1173 89.5574 86.3857 90.0548L60.2448 104.702C57.8642 106.036 54.9311 106.036 52.5505 104.702L26.178 89.9249C25.1949 89.3201 23.6375 89.3544 22.6253 89.9249Z" fill="currentColor"/>
1066<path d="M52.5476 1.21398C54.9282 -0.119909 57.861 -0.119909 60.2416 1.21398C60.2416 1.21398 90.7962 18.334 92.6969 19.3989C93.9925 20.0544 94.1099 21.8142 92.6969 22.6078C90.5574 23.8023 87.6876 25.4028 85.3064 26.7307C82.5246 28.282 79.1382 28.2775 76.3595 26.7205L60.2416 17.6896C57.861 16.3557 54.9282 16.3557 52.5476 17.6896L36.4107 26.7312C33.6299 28.2892 30.2406 28.2921 27.4569 26.7395C24.9815 25.3588 21.9786 23.6848 19.8146 22.4816C18.6143 21.9661 18.3645 20.4359 19.8146 19.5544L52.5476 1.21398Z" fill="currentColor"/>
1067<path d="M107.186 28.5855C109.567 29.9194 111.034 32.3844 111.034 35.0524V87.6622C111.034 90.2664 109.403 90.7518 107.664 89.8426L95.6449 83.3556V47.9859L60.2388 67.8241C57.8582 69.1579 54.9254 69.1579 52.5448 67.8241L17.1386 47.9859V83.3513L6.21749 89.835C4.91591 90.6626 1.75 90.9234 1.75 87.6622V35.0524C1.75 32.3844 3.21653 29.9194 5.59715 28.5855C9.42746 26.5797 13.3852 28.5855 13.3852 28.5855L56.3917 52.7349L99.3309 28.5855C99.3309 28.5855 103.144 26.2857 107.186 28.5855Z" fill="#22D172"/>
1068<path fill-rule="evenodd" clip-rule="evenodd" d="M262.428 27.5625C259.535 27.5625 257.188 29.9085 257.188 32.8024C257.188 35.6962 259.535 38.0421 262.428 38.0421C265.322 38.0421 267.668 35.6962 267.668 32.8024C267.668 29.9085 265.322 27.5625 262.428 27.5625ZM275.822 27.5626C275.536 27.5626 275.305 27.794 275.305 28.0794V79.5282C275.305 79.8137 275.536 80.0449 275.822 80.0449H283.779C284.064 80.0449 284.296 79.8137 284.296 79.5282V28.0794C284.296 27.794 284.064 27.5626 283.779 27.5626H275.822ZM293.45 27.5626C293.164 27.5626 292.933 27.794 292.933 28.0794V79.5282C292.933 79.8137 293.164 80.0452 293.45 80.0452H301.407C301.692 80.0452 301.924 79.8137 301.924 79.5282V52.0784H309.971C310.256 52.0784 310.488 51.8472 310.488 51.5618V43.9472C310.488 43.6618 310.256 43.4302 309.971 43.4302H301.924V28.0794C301.924 27.794 301.692 27.5626 301.407 27.5626H293.45ZM169.047 41.8607C160.276 41.8607 153.166 48.9706 153.166 57.7413V79.5285C153.166 79.814 153.398 80.0452 153.683 80.0452H161.64C161.925 80.0452 162.157 79.814 162.157 79.5285V57.7413C162.157 53.9361 165.242 50.8516 169.047 50.8516C172.852 50.8516 175.937 53.9361 175.937 57.7413V79.5285C175.937 79.814 176.168 80.0452 176.454 80.0452H184.411C184.696 80.0452 184.928 79.814 184.928 79.5285L184.928 57.7413C184.928 53.9361 188.013 50.8516 191.818 50.8516C195.623 50.8516 198.708 53.9361 198.708 57.7413V79.5285C198.708 79.814 198.939 80.0452 199.225 80.0452H207.182C207.468 80.0452 207.699 79.814 207.699 79.5285V57.7413C207.699 48.9706 200.589 41.8607 191.818 41.8607C187.353 41.8607 183.317 43.7043 180.432 46.6704C177.548 43.7043 173.512 41.8607 169.047 41.8607ZM231.282 41.8607C220.638 41.8607 212.01 50.4893 212.01 61.1336V61.936C212.01 72.5803 220.638 81.2089 231.282 81.2089C235.105 81.2089 238.62 79.8694 241.565 77.7572V79.5285C241.565 79.814 241.796 80.0452 242.081 80.0452H250.039C250.324 80.0452 250.556 79.814 250.556 79.5285V61.1336C250.556 50.4893 241.927 41.8607 231.282 41.8607ZM351.973 41.8607C341.331 41.8607 332.701 50.4893 332.701 61.1336V61.936C332.701 72.5803 341.331 81.2089 351.973 81.2089C355.722 81.2089 359.421 79.5383 362.257 77.3983V79.5285C362.257 79.814 362.487 8
10680.0452 362.771 80.0452H370.731C371.016 80.0452 371.245 79.814 371.245 79.5285V61.1336C371.245 50.4893 362.618 41.8607 351.973 41.8607ZM397.188 41.8607C386.543 41.8607 377.916 50.4893 377.916 61.1336V94.7029C377.916 94.9883 378.145 95.2199 378.433 95.2199H386.389C386.674 95.2199 386.907 94.9883 386.907 94.7029V78.2401C389.881 80.1205 393.409 81.2089 397.188 81.2089C407.833 81.2089 416.46 72.5803 416.46 61.936V61.1336C416.46 50.4893 407.833 41.8607 397.188 41.8607ZM329.969 43.1329C320.512 43.1329 312.844 50.8004 312.844 60.2587V79.5285C312.844 79.814 313.076 80.0452 313.361 80.0452H321.317C321.602 80.0452 321.835 79.814 321.835 79.5285V60.2587C321.835 55.766 325.476 52.1238 329.969 52.1238C330.107 52.1238 330.239 52.0692 330.337 51.9722C330.431 51.8754 330.487 51.744 330.487 51.6068V43.6495C330.487 43.3641 330.254 43.1329 329.969 43.1329ZM258.538 43.4302C258.253 43.4302 258.021 43.6618 258.021 43.9472V79.5285C258.021 79.814 258.253 80.0455 258.538 80.0455H266.495C266.781 80.0455 267.012 79.814 267.012 79.5285V43.9472C267.012 43.6618 266.781 43.4302 266.495 43.4302H258.538ZM221 61.1336C221 55.4548 225.604 50.8516 231.282 50.8516C236.961 50.8516 241.565 55.4548 241.565 61.1336V61.936C241.565 67.6148 236.961 72.218 231.282 72.218C225.604 72.218 221 67.6148 221 61.936V61.1336ZM341.692 61.1336C341.692 55.4548 346.295 50.8516 351.973 50.8516C357.651 50.8516 362.257 55.4548 362.257 61.1336V61.936C362.257 67.6148 357.651 72.218 351.973 72.218C346.295 72.218 341.692 67.6148 341.692 61.936V61.1336ZM386.907 61.1336C386.907 55.4548 391.51 50.8516 397.188 50.8516C402.866 50.8516 407.469 55.4548 407.469 61.1336V61.936C407.469 67.6148 402.866 72.218 397.188 72.218C391.51 72.218 386.907 67.6148 386.907 61.936V61.1336Z" fill="currentColor"/>
1069</svg>
1070
1071
1072</a></div>
1073                </div>
1074                        </div>
1075
1076
1077            <div class="doc-sidebar-highlight">
1078            <div class="ui-highlights">
1079            <div class="ui-highlight-item ui-highlight-hidden">
1080            <div class="ui-highlight-carbon">
1081                
1081<script defer async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CKYILK3J&placement=symfonycom" id="_carbonads_js"></script>
1081
1082            </div>
1083        </div>
1084    
1085    </div>
1086
1087        </div>
1088    
1089    <div class="ui-highlights">
1090    
1091                                        <div class="ui-highlight-item ui-highlight-hidden">
1092                <div class="ui-highlight-symfony">
1093                    <a href="https://certification.symfony.com/?utm_source=ad&amp;utm_medium=banner&amp;utm_campaign=certification&amp;utm_content=examhome">
1094                        <img loading="lazy" src="/images/network/sfcertif_01.webp" height="100" width="130" alt="Take the exam at home" />
1095                    </a>
1096                    <p class="ui-highlight-symfony-text">
1097                        <a href="https://certification.symfony.com/?utm_source=ad&amp;utm_medium=banner&amp;utm_campaign=certification&amp;utm_content=examhome">Take the exam at home</a>
1098                    </p>
1099                </div>
1100            </div>
1101                    <div class="ui-highlight-item ui-highlight-visible">
1102                <div class="ui-highlight-symfony">
1103                    <a href="https://sensiolabs.com/services?utm_source=symfony&amp;utm_medium=ad_visual&amp;utm_campaign=permanent_referral">
1104                        <img loading="lazy" src="/images/network/slsolutions_01.webp" height="100" width="130" alt="Peruse our complete Symfony &amp; PHP solutions catalog for your web development needs." />
1105                    </a>
1106                    <p class="ui-highlight-symfony-text">
1107                        <a href="https://sensiolabs.com/services?utm_source=symfony&amp;utm_medium=ad_visual&amp;utm_campaign=permanent_referral">Peruse our complete Symfony &amp; PHP solutions catalog for your web development needs.</a>
1108                    </p>
1109                </div>
1110            </div>
1111            </div>
1112
1113
1114
1115            </div>
1116
1117            </aside>
1118        </div>
1119    </div>
1120        </main>
1121
1122                    <footer>
1123    <h2 class="visually-hidden">Symfony footer</h2>
1124
1125    <div class="footer-content">
1126                    <section class="footer-top-wrapper">
1127                <div class="ui-page-container ui-page-container-wide">
1128                    <div class="footer-top">
1129                        <div class="symfony-contributor">
1130                                            <div class="d-flex align-items-start px-4 py-3 ui-contributor ui-contributor-horizontal">
1131            
1132<img loading="lazy"     width="48"
1133     height="48"
1134     alt="Avatar of Nathan Giesbrecht, a Symfony contributor"
1135     src="https://www.gravatar.com/avatar/6bab4b32748ae6f5b74a37fe30717ca4?size=48&amp;rating=g&amp;default=retro"
1136     onerror="this.onerror=null;
1137         this.src='data:image/svg+xml;utf8,\
1138         <svg xmlns=\'http://www.w3.org/2000/svg\' width=\'100%\' height=\'100%\'>\
1139             <style>\
1140                 rect { fill: %23f5f5f5; }\
1141                 @media (prefers-color-scheme: dark) { rect { fill: %23262626; } }\
1142             </style>\
1143             <rect width=\'100%\' height=\'100%\'/>\
1144         </svg>'"
1145     class="ui-avatar d-inline-block object-fit-cover me-3">
1146
1147
1148            <div>
1149                <p class="mb-1">
1150                    Thanks
1151                    <strong>
1152                                                    Nathan Giesbrecht
1153                                            </strong>
1154
1155                    
1156                    for being a Symfony contributor
1157                </p>
1158
1159                <p class="mb-1">
1160                    <span role="tooltip" aria-label="1 commit">
1161                            <strong>1</strong> commit</span>
1162                    &bull;
1163
1164                    <span role="tooltip" aria-label="2 lines of code/doc changed"><strong>2</strong> lines changed</span>
1165                </p>
1166            </div>
1167        </div>
1168    
1169
1170                            <p class="mt-3 mb-0"><a class="ui-link fw-semibold" href="/contributors">View all contributors</a> that help us make Symfony</p>
1171                        </div>
1172
1173                        <div class="contribute-to-symfony">
1174                            
1175<div  class="ui-heading">
1176        <h3 id="become-a-symfony-contributor"  class="ui-heading-title ui-text-md">
1177        
1178                    Become a Symfony contributor
1179        
1180            </h3>
1181
1182    </div>
1183                            <p class="mb-3">
1184                                Be an active part of the community and contribute ideas, c
1184ode and bug fixes.
1185                                Both experts and newcomers are welcome.
1186                            </p>
1187
1188                            <a class="ui-link fw-semibold" href="/doc/current/contributing/index.html">Learn how to contribute</a>
1189                        </div>
1190                    </div>
1191                </div>
1192            </section>
1193        
1194        <section class="footer-bottom-wrapper">
1195            <div class="ui-page-container ui-page-container-wide">
1196                <div class="footer-bottom">
1197                    <div class="symfony-20-highlight mb-4 py-2 px-2 position-relative d-inline-flex align-items-center">
1198                        <img class="me-2" width="43" height="24" alt="" src="/assets/icons/logos/sf-20years-wordmark-dark--dFsFxh.webp">
1199                        <p><a class="stretched-link" href="/20years">Celebrating 20 years of Symfony</a></p>
1200                    </div>
1201
1202                    <p class="mb-3">
1203                        <b>Symfony</b>&trade; is a trademark of Symfony SAS. <a href="/trademark">All rights reserved</a>.
1204                    </p>
1205
1206                    <ul class="ui-sitemap ">
1207    <li>        <p class="mb-2 fw-semibold"><a href="/what-is-symfony">What is Symfony?</a></p>
1208    <ul class="ui-sitemap-menu" role="menubar" aria-label="What is Symfony?">
1209                    <li class="" role="menuitem">
1210                <a href="/what-is-symfony">
1211                    What is Symfony?
1212                </a>
1213            </li>
1214                    <li class="" role="menuitem">
1215                <a href="/at-a-glance">
1216                    Symfony at a Glance
1217                </a>
1218            </li>
1219                    <li class="" role="menuitem">
1220                <a href="/packages">
1221                    Symfony Packages
1222                </a>
1223            </li>
1224                    <li class="" role="menuitem">
1225                <a href="/releases">
1226                    Symfony Releases
1227                </a>
1228            </li>
1229                    <li class="" role="menuitem">
1230                <a href="/doc/current/contributing/code/security.html">
1231                    Security Policy
1232                </a>
1233            </li>
1234                    <li class="" role="menuitem">
1235                <a href="/logo">
1236                    Logo &amp; Screenshots
1237                </a>
1238            </li>
1239                    <li class="" role="menuitem">
1240                <a href="/license">
1241                    Trademark &amp; Licenses
1242                </a>
1243            </li>
1244                    <li class="" role="menuitem">
1245                <a href="/legacy">
1246                    symfony1 Legacy
1247                </a>
1248            </li>
1249            </ul>
1250</li>
1251    <li>        <p class="mb-2 fw-semibold"><a href="/doc">Learn Symfony</a></p>
1252    <ul class="ui-sitemap-menu" role="menubar" aria-label="Learn Symfony">
1253                    <li class="active" role="menuitem">
1254                <a href="/tour">
1255                    Symfony Quick Tour
1256                </a>
1257            </li>
1258                    <li class="" role="menuitem">
1259                <a href="/doc">
1260                    Symfony Docs
1261                </a>
1262            </li>
1263                    <li class="" role="menuitem">
1264                <a href="/book">
1265                    Symfony Book
1266                </a>
1267            </li>
1268                    <li class="" role="menuitem">
1269                <a href="/doc/current/reference/index.html">
1270                    Reference
1271                </a>
1272            </li>
1273                    <li class="" role="menuitem">
1274                <a href="/bundles">
1275                    Bundles
1276                </a>
1277            </li>
1278                    <li class="" role="menuitem">
1279                <a href="/doc/current/best_practices.html">
1280                    Best Practices
1281                </a>
1282            </li>
1283                    <li class="" role="menuitem">
1284                <a href="https://sensiolabs.com/training/courses?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">
1285                    Training
1286                </a>
1287            </li>
1288                    <li class="" role="menuitem">
1289                <a href="https://university.sensiolabs.com/e-learning-platform?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">
1290                    eLearning Platform
1291                </a>
1292            </li>
1293                    <li class="" role="menuitem">
1294                <a href="https://certification.symfony.com/">
1295                    Certification
1296                </a>
1297            </li>
1298            </ul>
1299</li>
1300    <li>        <p class="mb-2 fw-semibold"><a href="https://symfonycasts.com/">Screencasts</a></p>
1301    <ul class="ui-sitemap-menu" role="menubar" aria-label="Screencasts">
1302                    <li class="" role="menuitem">
1303                <a href="https://symfonycasts.com/tracks/symfony">
1304                    Learn Symfony
1305                </a>
1306            </li>
1307                    <li class="" role="menuitem">
1308                <a href="https://symfonycasts.com/tracks/php">
1309                    Learn PHP
1310                </a>
1311            </li>
1312                    <li class="" role="menuitem">
1313                <a href="https://symfonycasts.com/tracks/javascript">
1314                    Learn JavaScript
1315                </a>
1316            </li>
1317                    <li class="" role="menuitem">
1318                <a href="https://symfonycasts.com/tracks/drupal">
1319                    Learn Drupal
1320                </a>
1321            </li>
1322                    <li class="" role="menuitem">
1323                <a href="https://symfonycasts.com/tracks/rest">
1324                    Learn RESTful APIs
1325                </a>
1326            </li>
1327            </ul>
1328</li>
1329    <li>        <p class="mb-2 fw-semibold"><a href="/community">Community</a></p>
1330    <ul class="ui-sitemap-menu" role="menubar" aria-label="Community">
1331                    <li class="" role="menuitem">
1332                <a href="/community">
1333                    Symfony Community
1334                </a>
1335            </li>
1336                    <li class="" role="menuitem">
1337                <a href="https://connect.symfony.com/">
1338                    SymfonyConnect
1339                </a>
1340            </li>
1341                    <li class="" role="menuitem">
1342                <a href="/events/">
1343                    Events &amp; Meetups
1344                </a>
1345            </li>
1346                    <li class="" role="menuitem">
1347                <a href="/projects">
1348                    Projects using Symfony
1349                </a>
1350            </li>
1351                    <li class="" role="menuitem">
1352                <a href="/contributors">
1353                    Contributors
1354                </a>
1355            </li>
1356                    <li class="" role="menuitem">
1357                <a href="/jobs">
1358                    Symfony Jobs
1359                </a>
1360            </li>
1361                    <li class="" role="menuitem">
1362                <a href="/backers">
1363                    Backers
1364                </a>
1365            </li>
1366                    <li class="" role="menuitem">
1367                <a href="/doc/current/contributing/code_of_conduct/code_of_conduct.html">
1368                    Code of Conduct
1369                </a>
1370            </li>
1371                    <li class="" role="menuitem">
1372                <a href="/stats/downloads">
1373                    Downloads Stats
1374                </a>
1375            </li>
1376                    <li class="" role="menuitem">
1377                <a href="/support">
1378                    Support
1379                </a>
1380            </li>
1381            </ul>
1382</li>
1383    <li>        <p class="mb-2 fw-semibold"><a href="/blog/">Blog</a></p>
1384    <ul class="ui-sitemap-menu" role="menubar" aria-label="Blog">
1385                    <li class="" role="menuitem">
1386                <a href="/blog/">
1387                    All Blog Posts
1388                </a>
1389            </li>
1390                    <li class="" role="menuitem">
1391                <a href="/blog/category/a-week-of-symfony">
1392                    A Week of Symfony
1393                </a>
1394            </li>
1395                    <li class="" role="menuitem">
1396                <a href="/blog/category/case-studies">
1397                    Case Studies
1398                </a>
1399            </li>
1400                    <li class="" role="menuitem">
1401                <a href="/blog/category/cloud">
1402                    Cloud
1403                </a>
1404            </li>
1405                    <li class="" role="menuitem">
1406                <a href="/blog/category/community">
1407                    Community
1408                </a>
1409            </li>
1410                    <li class="" role="menuitem">
1411                <a href="/blog/category/conferences">
1412                    Conferences
1413                </a>
1414            </li>
1415                    <li class="" role="menuitem">
1416                <a href="/blog/category/diversity">
1417                    Diversity
1418                </a>
1419            </li>
1420                    <li class="" role="menuitem">
1421                <a href="/blog/category/living-on-the-edge">
1422                    Living on the edge
1423                </a>
1424            </li>
1425                    <li class="" role="menuitem">
1426                <a href="/blog/category/releases">
1427                    Releases
1428                </a>
1429            </li>
1430                    <li class="" role="menuitem">
1431                <a href="/blog/category/security-advisories">
1432                    Security Advisories
1433                </a>
1434            </li>
1435                    <li class="" role="menuitem">
1436                <a href="/blog/category/symfony-insight">
1437                    Symfony Insight
1438                </a>
1439            </li>
1440                    <li class="" role="menuitem">
1441                <a href="/blog/category/twig">
1442                    Twig
1443                </a>
1444            </li>
1445                    <li class="" role="menuitem">
1446                <a href="https://sensiolabs.com/blog?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">
1447                    SensioLabs Blog
1448                </a>
1449            </li>
1450            </ul>
1451</li>
1452    <li>
1453                <p class="mb-2 fw-semibold"><a href="https://sensiolabs.com/?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">Services</a></p>
1454    <ul class="ui-sitemap-menu" role="menubar" aria-label="Services">
1455                    <li class="" role="menuitem">
1456                <a href="https://sensiolabs.com/?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">
1457                    SensioLabs services
1458                </a>
1459            </li>
1460                    <li class="" role="menuitem">
1461                <a href="https://sensiolabs.com/training?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">
1462                    Train developers
1463                </a>
1464            </li>
1465                    <li class="" role="menuitem">
1466                <a href="https://insight.symfony.com/">
1467                    Manage your project quality
1468                </a>
1469            </li>
1470                    <li class="" role="menuitem">
1471                <a href="https://www.blackfire.io/?utm_source=symfony&amp;utm_medium=symfonycom_footer&amp;utm_campaign=profiler">
1472                    Improve your project performance
1473                </a>
1474            </li>
1475                    <li class="" role="menuitem">
1476                <a href="/cloud/">
1477                    Host Symfony projects
1478                </a>
1479            </li>
1480            </ul>
1481
1482
1483                    <p class="mt-4 mb-2 fw-semibold"><a href="/cloud/">Powered by</a></p>
1484            <a href="/cloud/" class="block deploy-logo" title="Upsun, a Platform-as-a-Service optimized for Symfony developers" aria-label="Upsun">
1485                <svg height="1em" viewBox="32 34 321.93496 115.34414" width="1em" fill="currentColor" aria-hidden="true"><g transform="translate(-11.3 -9.3)"><g fill="currentColor"><path d="m163.8 105.4c-2.6 0-4.8-.6-6.7-1.7-1.8-1.1-3.3-2.6-4.2-4.5-1-1.9-1.4-4-1.4-6.4v-24.9h10.8v22.8c0 2 .5 3.5 1.5 4.5s2.4 1.5 4.3 1.5 3.1-.4 4.3-1.1c1.2-.8 2.2-1.8 3-3.2s1.1-3 1.1-4.7l.9 8.9c-1.2 2.6-3 4.8-5.3 6.4s-5.1 2.5-8.4 2.5zm12.9-.8v-8.7h-.2v-28.1h10.8v36.8z"></path><path d="m216.6 105.3c-3.5 0-6.3-.8-8.4-2.5-2.1-1.6-3.4-3.9-3.8-6.7h.6v23.2h-10.8v-51.6h10.6v8.1h-.7c.5-2.8 2-5 4.3-6.5s5.3-2.3 8.7-2.3 6.2.8 8.6 2.3c2.4 1.6 4.3 3.8 5.6 6.6s2 6.2 2 10-.7 7.3-2.1 10.2-3.3 5.
14851-5.8 6.7-5.5 2.4-8.9 2.4zm-3-8.6c2.6 0 4.6-.9 6.2-2.7s2.4-4.4 2.4-7.8-.8-5.9-2.4-7.7-3.7-2.7-6.3-2.7-4.6.9-6.2 2.7-2.4 4.4-2.4 7.8.8 6 2.4 7.8 3.7 2.7 6.3 2.7z"></path><path d="m254.3 105.4c-5.4 0-9.7-1.1-12.8-3.2-3.2-2.2-4.9-5.2-5.2-9h9.7c.2 1.6 1.1 2.9 2.5 3.7s3.4 1.3 5.9 1.3 3.9-.3 4.9-1 1.5-1.6 1.5-2.8-.3-1.6-.9-2.1-1.7-.9-3.3-1.3l-5.9-1.2c-4.4-.9-7.6-2.3-9.7-4.1-2.1-1.9-3.1-4.2-3.1-7.2s1.4-6.3 4.1-8.3 6.6-3 11.5-3 8.7 1 11.6 2.9c2.9 2 4.5 4.7 4.8 8.1h-9.7c-.2-1.2-.9-2.2-2-2.8s-2.8-1-4.9-1-3.4.3-4.3.8-1.4 1.3-1.4 2.3.4 1.5 1.1 2.1c.8.5 2 .9 3.8 1.3l6.6 1.4c3.7.8 6.5 2.2 8.4 4.3s2.8 4.6 2.8 7.4-1.4 6.4-4.2 8.4-6.8 3-11.9 3z"></path><path d="m286.9 105.4c-2.6 0-4.8-.6-6.7-1.7-1.8-1.1-3.3-2.6-4.2-4.5-1-1.9-1.4-4-1.4-6.4v-24.9h10.8v22.8c0 2 .5 3.5 1.5 4.5s2.4 1.5 4.3 1.5 3.1-.4 4.3-1.1c1.2-.8 2.2-1.8 3-3.2.7-1.4 1.1-3 1.1-4.7l.9 8.9c-1.2 2.6-3 4.8-5.3 6.4s-5.1 2.5-8.4 2.5zm12.9-.8v-8.7h-.2v-28.1h10.8v36.8z"></path><path d="m317.2 104.6v-36.8h10.6v8.7h.2v28.1zm25.7 0v-22.8c0-2-.5-3.5-1.6-4.5-1-1-2.5-1.5-4.5-1.5s-3.2.4-4.5 1.2-2.4 1.8-3.1 3.2c-.8 1.3-1.1 2.9-1.1 4.8l-.9-8.9c1.2-2.7 3-4.8 5.3-6.5 2.3-1.6 5.2-2.4 8.6-2.4s7.2 1.1 9.4 3.4 3.2 5.4 3.2 9.2v24.9h-10.8z"></path><path d="m86.6 64.9c12 0 21.6 9.7 21.6 21.6h21.6c0-23.9-19.4-43.3-43.3-43.3s-43.3 19.4-43.3 43.3h21.6c0-12 9.7-21.6 21.7-21.6z"></path><path d="m93.9 106.9c8.3-3 14.3-11 14.3-20.3h-43.2c0 9.4 6 17.3 14.3 20.3v.4h-30.6c7.3 13.4 21.6 22.5 38 22.5s30.6-9.1 38-22.5h-30.7v-.4z"></path></g></g><text font-family="SpaceGrotesk-Regular, 'Space Grotesk'" font-size="20.6" x="138.5" y="145.2"><tspan x="138.5" y="145.2">Formerly Platform.sh</tspan></text></svg>
1486            </a>
1487            </li>
1488</ul>
1489
1490
1491                    <div class="my-4">
1492                        <h3><span>Follow Symfony</span></h3>
1493                        <div class="d-flex align-items-center flex-wrap mt-3 row-gap-3 column-gap-4">
1494                            <a href="https://github.com/symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on GitHub">
1495                                
1496
1497
1498<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg>
1499
1500                            </a>
1501                            <a href="/slack" target="_blank" rel="external noopener noreferrer" title="Symfony on Slack">
1502                                
1503
1504
1505<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M5.042 15.165a2.53 2.53 0 0 1-2.52 2.523A2.53 2.53 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.53 2.53 0 0 1 8.834 24a2.53 2.53 0 0 1-2.521-2.522zM8.834 5.042a2.53 2.53 0 0 1-2.521-2.52A2.53 2.53 0 0 1 8.834 0a2.53 2.53 0 0 1 2.521 2.522v2.52zm0 1.271a2.53 2.53 0 0 1 2.521 2.521a2.53 2.53 0 0 1-2.521 2.521H2.522A2.53 2.53 0 0 1 0 8.834a2.53 2.53 0 0 1 2.522-2.521zm10.122 2.521a2.53 2.53 0 0 1 2.522-2.521A2.53 2.53 0 0 1 24 8.834a2.53 2.53 0 0 1-2.522 2.521h-2.522zm-1.268 0a2.53 2.53 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.53 2.53 0 0 1 2.523 2.522zm-2.523 10.122a2.53 2.53 0 0 1 2.523 2.522A2.53 2.53 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165
1505a2.53 2.53 0 0 1-2.522 2.523z"></path></svg>
1506
1507                            </a>
1508                            <a href="https://twitter.com/symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Twitter">
1509                                
1510
1511
1512<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584l-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"></path></svg>
1513
1514                            </a>
1515                            <a href="https://mastodon.social/@symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Mastodon">
1516                                
1517
1518
1519<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127C.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611c.118 1.24.325 2.47.62 3.68c.55 2.237 2.777 4.098 4.96 4.857c2.336.792 4.849.923 7.256.38q.398-.092.786-.213c.585-.184 1.27-.39 1.774-.753a.06.06 0 0 0 .023-.043v-1.809a.05.05 0 0 0-.02-.041a.05.05 0 0 0-.046-.01a20.3 20.3 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.6 5.6 0 0 1-.319-1.433a.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546c.376 0 .75 0 1.125-.01c1.57-.044 3.224-.124 4.768-.422q.059-.011.11-.024c2.435-.464 4.753-1.92 4.989-5.604c.008-.145.03-1.52.03-1.67c.002-.512.167-3.63-.024-5.545m-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976c-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35c-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102q0-1.965 1.011-3.12c.696-.77 1.608-1.164 2.74-1.164c1.311 0 2.302.5 2.962 1.498l.638 1.06l.638-1.06c.66-.999 1.65-1.498 2.96-1.498c1.13 0 2.043.395 2.74 1.164q1.012 1.155 1.012 3.12z"></path></svg>
1520
1521                            </a>
1522                            <a href="https://www.linkedin.com/company/symfony-sas/" target="_blank" rel="me external noopener noreferrer" title="Symfony on LinkedIn">
1523                                
1524
1525
1526<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z"></path></svg>
1527
1528                            </a>
1529                            <a href="https://www.facebook.com/SymfonyFramework" target="_blank" rel="me external noopener noreferrer" title="Symfony on Facebook">
1530                                
1531
1532
1533<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978c.401 0 .955.042 1.468.103a9 9 0 0 1 1.141.195v3.325a9 9 0 0 0-.653-.036a27 27 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.7 1.7 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103l-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647"></path></svg>
1534
1535                            </a>
1536                            <a href="https://www.youtube.com/symfonytv" target="_blank" rel="me external noopener noreferrer" title="Symfony on YouTube">
1537                                
1538
1539
1540<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M23.498 6.186a3.02 3.02 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.02 3.02 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.02 3.02 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.02 3.02 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814M9.545 15.568V8.432L15.818 12z"></path></svg>
1541
1542                            </a>
1543                            <a href="https://bsky.app/profile/symfony.com" target="_blank" rel="me external noopener noreferrer" title="Symfony on BlueSky">
1544                                
1545
1546
1547<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px">
1547<path fill="currentColor" d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565C.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479c.815 2.736 3.713 3.66 6.383 3.364q.204-.03.415-.056q-.207.033-.415.056c-3.912.58-7.387 2.005-2.83 7.078c5.013 5.19 6.87-1.113 7.823-4.308c.953 3.195 2.05 9.271 7.733 4.308c4.267-4.308 1.172-6.498-2.74-7.078a9 9 0 0 1-.415-.056q.21.026.415.056c2.67.297 5.568-.628 6.383-3.364c.246-.828.624-5.79.624-6.478c0-.69-.139-1.861-.902-2.206c-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8"></path></svg>
1548
1549                            </a>
1550                            <a href="https://www.threads.net/@symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Threads">
1551                                
1552
1553
1554<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="currentColor" d="M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098c1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015c-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164c1.43 1.783 3.631 2.698 6.54 2.717c2.623-.02 4.358-.631 5.8-2.045c1.647-1.613 1.618-3.593 1.09-4.798c-.31-.71-.873-1.3-1.634-1.75c-.192 1.352-.622 2.446-1.284 3.272c-.886 1.102-2.14 1.704-3.73 1.79c-1.202.065-2.361-.218-3.259-.801c-1.063-.689-1.685-1.74-1.752-2.964c-.065-1.19.408-2.285 1.33-3.082c.88-.76 2.119-1.207 3.583-1.291a14 14 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757c-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32l-1.757-1.18c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388q.163.07.321.142c1.49.7 2.58 1.761 3.154 3.07c.797 1.82.871 4.79-1.548 7.158c-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69q-.362 0-.739.021c-1.836.103-2.98.946-2.916 2.143c.067 1.256 1.452 1.839 2.784 1.767c1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221"></path></svg>
1555
1556                            </a>
1557                            <a href="https://symfonycasts.com/" target="_blank" rel="me external noopener noreferrer" title="Symfony Screencasts">
1558                                
1559
1560        
1561<svg viewBox="0 0 300 300" space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421" width="32px" height="32px" fill="currentColor" aria-hidden="true"><g><path d="M300 30c0-16.557-13.443-30-30-30H30C13.443 0 0 13.443 0 30v240c0 16.557 13.443 30 30 30h240c16.557 0 30-13.443 30-30V30z" style="fill: currentColor"></path><path d="M94.679 204.481c-4.374-1.925-9.01-2.625-13.734-2.625-18.632 0-32.278 12.51-32.278 31.317 0 19.42 12.859 31.841 32.191 31.841 3.587 0 9.272-.262 13.909-2.187l-.257-4.156a3.1 3.1 0 0 0-3.988-2.776c-2.99.903-6.622 1.421-9.577 1.421-12.684 0-23.006-9.534-23.006-23.881 0-13.733 9.36-23.881 23.444-23.881 3.038 0 5.994.528 8.787 1.582a3.098 3.098 0 0 0 4.178-2.646l.331-4.009zm13.522 19.85a3.1 3.1 0 0 0 4.404 2.615c2.741-1.268 5.876-1.996 8.866-1.996 8.223 0 11.022 3.937 11.022 11.635-3.237-.175-5.511-.175-8.748-.175-8.485 0-20.732 3.499-20.732 14.696 0 9.709 6.736 13.908 16.358 13.908 7.523 0 11.897-4.111 13.822-6.823h.175v5.774h4.352a3.098 3.098 0 0 0 3.093-3.296 125.34 125.34 0 0 1-.097-5.452v-18.458c0-12.159-5.161-18.457-17.933-18.457-5.686 0-10.585 1.75-14.696 4.199l.114 1.83zm44.173 38.234c3.761 2.012 8.048 2.449 12.247 2.449 7.96 0 15.57-4.373 15.57-13.908 0-14.259-19.332-11.635-19.332-20.732 0-3.674 3.674-5.424 7.873-5.424 1.107 0 3.2.377 5.127.913a3.097 3.097 0 0 0 3.926-2.68l.307-3.131c-3.237-.963-6.386-1.75-10.235-1.75-8.835 0-15.746 4.461-15.746 13.734 0 12.509 19.333 11.809 19.333 19.944 0 4.812-4.637 6.386-8.398 6.386-1.512 0-3.954-.43-6.366-1.29a3.097 3.097 0 0 0-4.141 2.732l-.165 2.757zm71.142 0c3.761 2.012 8.048 2.449 12.247 2.449 7.96 0 15.57-4.373 15.57-13.908 0-14.259-19.332-11.635-19.332-20.732 0-3.674 3.674-5.424 7.873-5.424 1.107 0 3.2.377 5.127.913a3.097 3.097 0 0 0 3.926-2.68l.307-3.131c-3.237-.963-6.386-1.75-10.235-1.75-8.835 0-15.746 4.461-15.746 13.734 0 12.509 19.333 11.809 19.333 19.944 0 4.812-4.637 6.386-8.398 6.386-1.512 0-3.954-.43-6.366-1.29a3.097 3.097 0 0 0-4.141 2.732l-.165 2.757zm-29.36-43.213v-12.947h5.123a3.1 3.1 0 0 1 3.099 3.1v9.847h11.81v3.548a3.1 3.1 0 0 1-3.1 3.1h-8.71v24.406c0 5.161 3.15 7.96 6.911 7.96.702 0 1.351-.06 1.947-.167a3.101 3.101 0 0 1 3.652 3.05v2.541c-1.837.525-4.374 1.224-6.999 1.224-8.485 0-13.733-4.024-13.733-12.946V226h-5.052a3.1 3.1 0 0 1-3.099-3.1v-3.548h8.151zm-61.663 27.292c0 6.649-4.286 11.722-12.422 11.722-3.761 0-8.31-2.537-8.31-7.26 0-7.873 11.022-8.573 15.483-8.573 1.75 0 3.499.175 5.249.175v3.936zm136.934-67.652H30.577c-.355-.024-.449-.012-.794-.109-1.164-.326-2.062-1.423-2.145-2.636a3.007 3.007 0 0 1 1.409-2.719c.344-.209.73-.346 1.129-.401.133-.019.268-.019.401-.028H53c-7.987-7.798-9.293-17.234-7.409-23.363 2.511-8.144 8.984-9.683 15.314-7.74
15611 6.779 2.096 9.432 10.333 7.493 16.657-.216.677-.562 1.805-1.274 3.324-.787 1.738-2.245 3.272-2.869 5.31-.693 2.253.33 4.211 2.099 5.813h27.289c1.97-1.871 3.447-4.169 4.233-6.74 2.444-7.89-2.548-13.398-4.615-15.512l-10.054-10.762c-4.598-5.12-14.713-19.398-9.779-35.432 1.904-6.184 5.91-12.742 11.724-17.083 12.275-9.147 25.621-10.648 38.327-6.995 16.448 4.729 24.347 15.602 34.59 24.005 5.735-16.818 13.683-33.283 25.635-47.176 10.794-12.652 25.297-21.822 41.908-22.39 16.596-.548 29.142 6.974 29.556 18.882.167 5.068-2.74 14.92-12.864 15.261-7.572.262-12.8-4.263-13.036-11.135-.085-2.519.566-4.724 2.292-7.301 1.688-3.304 2.049-3.683 2.006-5.12-.152-4.333-6.692-4.493-8.482-4.409-24.548.811-31.018 33.939-36.263 60.875l-2.569 14.205c14.136 2.067 24.172-.481 29.77-4.102 7.881-5.117-2.205-10.374-.933-16.191 1.288-5.931 6.683-8.794 10.969-8.914 6-.148 10.283 6.077 10.144 12.395-.216 10.444-14.069 24.793-41.783 24.207a96.847 96.847 0 0 1-9.38-.665l-5.228 28.86c-1.387 6.478-2.91 13.66-4.945 21.237h94.561l.401.028c.132.027.265.045.394.082a3.005 3.005 0 0 1 2.09 2.237c.272 1.308-.46 2.759-1.711 3.302-.246.107-.506.18-.773.217-.132.018-.267.018-.401.027zm-127.085-5.893c.469-2.383.942-4.832 1.422-7.35l1.674-10.152c2.723-13.608 5.741-28.784 10.342-43.905-11.162-8.404-17.847-18.821-32.86-22.892-10.29-2.793-16.562-.423-20.973 5.155-5.222 6.604-3.488 15.2 1.557 20.241l8.336 9.223c10.222 11.808 15.809 20.999 13.707 33.359-1.024 6.057-3.949 11.682-8.315 16.321h25.11z" style="fill: var(--footer-bottom-background)"></path></g></svg>
1562
1563                            </a>
1564                            <a href="https://feeds.feedburner.com/symfony/blog" target="_blank" rel="external noopener noreferrer" title="Symfony Blog RSS">
1565                                
1566
1567
1568<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"></path></svg>
1569
1570                            </a>
1571                        </div>
1572                    </div>
1573
1574                    <div class="theme">
1575                        <form class="d-flex align-items-center">
1576                            <label for="color-scheme-switcher">
1577                                
1578
1579    
1580<svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="21px" class="me-1 ui-text-muted"><path fill="currentColor" d="M17 3.34A10 10 0 1 1 2 12l.005-.324A10 10 0 0 1 17 3.34M8 5.072A8 8 0 0 0 12.001 20L12 4a8 8 0 0 0-4 1.072"></path></svg>
1581
1582                                <span class="visually-hidden">Site appearance:</span>
1583                            </label>
1584                            <select id="color-scheme-switcher" autocomplete="off">
1585                                <option value="light">Light mode</option>
1586                                <option value="dark">Dark mode</option>
1587                                <option value="sync" selected>Sync with system</option>
1588                            </select>
1589                        </form>
1590                    </div>
1591                    
1591<script async>
1592                        const colorSchemeSwitcher = document.getElementById('color-scheme-switcher');
1593                        const currentScheme = localStorage.getItem('colorScheme');
1594
1595                        colorSchemeSwitcher.value = currentScheme;
1596                        colorSchemeSwitcher.addEventListener('change', function () {
1597                            const selectedColorScheme = colorSchemeSwitcher.value;
1598                            let resolvedColorScheme = selectedColorScheme;
1599                            if ('sync' === resolvedColorScheme) {
1600                                resolvedColorScheme = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
1601                            }
1602
1603                            document.body.classList.remove('light-theme', 'dark-theme');
1604                            document.body.classList.add('light' === resolvedColorScheme ? 'light-theme' : 'dark-theme');
1605                            localStorage.setItem('colorScheme', selectedColorScheme);
1606                        });
1607                    </script>
1607
1608                </div>
1609            </div>
1610        </section>
1611    </div>
1612</footer>
1613
1614        
1615        <div id="search-modal-backdrop" class="search-container">
1616            <div role="dialog" aria-modal="true" id="search-modal-content" tabindex="-1">
1617                <button aria-label="Close modal" id="search-modal-close-button">CLOSE</button>
1618                <div class="search-container"  data-controller="live" data-live-name-value="Search" data-live-url-value="/_components/Search" id="live-2308103015-0" data-live-props-value="{&quot;query&quot;:null,&quot;category&quot;:null,&quot;version&quot;:null,&quot;@attributes&quot;:{&quot;id&quot;:&quot;live-2308103015-0&quot;},&quot;@checksum&quot;:&quot;X\/UQ7QZpzsgMxLn13OvvBBeyKP5K4V+R\/uyvT4APocE=&quot;}">
1619    <form id="form-search">
1620        <div class="form-group form-search-input">
1621            <label for="form-search-input" class="visually-hidden">Search Symfony Docs</label>
1622                        <input type="search" name="q" data-model="query" value=""
1623                   class="mousetrap form-control ui-form-control-rounded ui-form-control-search-icon form-search-input"
1624                   placeholder="Search Symfony Docs" aria-label="Search in Symfony documentation"
1625                   role="combobox" aria-autocomplete="list" aria-controls="search-results-listbox"
1626                   aria-expanded="false"
1627                   autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false">
1628        </div>
1629                <button type="submit" class="visually-hidden" tabindex="-1">Search</button>
1630    </form>
1631
1632        <p class="visually-hidden" role="status" aria-live="polite"></p>
1633
1634    </div>
1635
1636
1637            </div>
1638        </div>
1639    
1639<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"340bb4ab9b624fd09c56d01e77483a49","spa":2}' crossorigin="anonymous"></script>
1639
1640</body>
1641</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.