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&utm_medium=symfonycom_footer&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&utm_medium=banner&utm_campaign=certification&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&utm_medium=banner&utm_campaign=certification&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&utm_medium=ad_visual&utm_campaign=permanent_referral"> 1104 <img loading="lazy" src="/images/network/slsolutions_01.webp" height="100" width="130" alt="Peruse our complete Symfony & 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&utm_medium=ad_visual&utm_campaign=permanent_referral">Peruse our complete Symfony & 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&rating=g&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 • 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>™ 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 & Screenshots 1237 </a> 1238 </li> 1239 <li class="" role="menuitem"> 1240 <a href="/license"> 1241 Trademark & 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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&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 & 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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&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&utm_medium=symfonycom_footer&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="{"query":null,"category":null,"version":null,"@attributes":{"id":"live-2308103015-0"},"@checksum":"X\/UQ7QZpzsgMxLn13OvvBBeyKP5K4V+R\/uyvT4APocE="}"> 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.