CINXE.COM

Symfony Documentation

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="robots" content="index, follow, all" /> <meta name="Author" content="Symfony" /> <meta name="color-scheme" content="light dark"> <meta name="view-transition" content="same-origin" /> <meta name="description" content="Symfony documentation includes articles, tutorials and books to learn about the Symfony PHP framework and its components."> <meta name="Keywords" content="symfony3, symfony2, symfony, project, framework, php, php5, php7, php8, open-source, components, symphony, symfony framework, symfony tutorial" /> <link rel="preconnect" href="https://connect.symfony.com"> <title>Symfony Documentation</title> <link rel="search" type="application/opensearchdescription+xml" href="https://symfony.com/opensearch/documentation.xml" title="Symfony documentation" /> <link rel="stylesheet" href="/assets/vendor/bootstrap/dist/css/bootstrap.min-1712f0378f8675ca7cd423d6262fcccf.css"> <link rel="stylesheet" href="/assets/styles/color-palette-d0d7a9d5fc86e4b1e9ad91ec0c957a96.css"> <link rel="stylesheet" href="/assets/styles/app-39ad25b073804b5438d03471928d0b16.css"> <link rel="stylesheet" href="/assets/styles/ui-components-155eb1e4e796922e265a182e612ed047.css"> <link rel="stylesheet" href="/assets/@symfony/ux-live-component/live.min-5108f988fb2a3dbb292d6feebc9db7e8.css"> <link rel="stylesheet" href="/assets/styles/search-42da4f901c7d6eabaf3c8671eb7664cf.css"> <link rel="stylesheet" href="/assets/styles/doc-18b41f70c1a0fecfc75a0b1dbb868dc0.css"> <link rel="stylesheet" href="/assets/styles/code-14f7094c46fcc117c0276b407fbada0f.css"> <link rel="stylesheet" href="/assets/styles/terminal_window-fbcf5e4dfdb661df120a5f5e2f2d2083.css"> <script type="importmap" data-turbo-track="reload"> { "imports": { "app": "/assets/app-8a87453761810fb014e976bf960715d7.js", "bootstrap/dist/css/bootstrap.min.css": "data:application/javascript,", "bootstrap/js/src/offcanvas": "/assets/vendor/bootstrap/js/src/offcanvas-6e548788bdb299ccf15bad01f85a1c4e.js", "/assets/styles/color-palette.css": "data:application/javascript,", "/assets/styles/app.css": "data:application/javascript,", "/assets/styles/ui-components.css": "data:application/javascript,", "/assets/stimulus.js": "/assets/stimulus-97656ab68e522ab9732b853e32a2116f.js", "@symfony/stimulus-bundle": "/assets/@symfony/stimulus-bundle/loader-870999a02e9fc147c034d522826ea70d.js", "@hotwired/stimulus": "/assets/vendor/@hotwired/stimulus/stimulus.index-b5b1d00e42695b8959b4a1e94e3bc92a.js", "/assets/@symfony/stimulus-bundle/controllers.js": "/assets/@symfony/stimulus-bundle/controllers-30ef92e440b067edafb440f89903311e.js", "/assets/@symfony/ux-live-component/live_controller.js": "/assets/@symfony/ux-live-component/live_controller-b4fdb1f53d5a5f813f85327cceb706b8.js", "/assets/@symfony/ux-live-component/live.min.css": "data:application/javascript,", "/assets/controllers/eventsmap_controller.js": "/assets/controllers/eventsmap_controller-dec85c248dc518bcca1ff8c1772842bc.js", "search": "/assets/search-04960a6f9bd1902ecc44ef024e74ecb9.js", "/assets/styles/search.css": "data:application/javascript,", "mousetrap": "/assets/vendor/mousetrap/mousetrap.index-2fcbabba04c2773c43d7b248b7bfcc5e.js", "doc": "/assets/doc-f53df194d5b1babeef5401af8562c6af.js", "/assets/styles/doc.css": "data:application/javascript,", "/assets/code.js": "/assets/code-5fce8b30c71ee457fcb7e2630873c57e.js", "/assets/styles/code.css": "data:application/javascript,", "/assets/styles/terminal_window.css": "data:application/javascript,", "new-home": "/assets/new-home-9a08d54a40d4a2fbb00487afc11859af.js", "/assets/styles/new-home.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fnew-home-30a9da07f1ac1f13638453adae0c8ede.css%22%7D%29%29", "admin-bundles": "/assets/admin-bundles-ff6540dd6bb0d162e8fd444b0c404fea.js", "admin-blog": "/assets/admin-blog-a64407de34fbdd1ac8c240b95f6cbdcd.js", "/assets/@symfony/ux-leaflet-map/map_controller.js": "/assets/@symfony/ux-leaflet-map/map_controller-975755623ba9069450e62093d97cea8f.js", "terminal-recording-player": "/assets/asciinema-player-4aaff97af7e331a12fb59d2752290c4d.js", "backers": "/assets/backers-8abb46ccd02a5fbd206198fcd2c9f297.js", "/assets/styles/backers.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fbackers-bcb27fa37219d1ba529093e1479b5a19.css%22%7D%29%29", "blog": "/assets/blog-770e3fee93dddddd01dac29b396d3383.js", "/assets/styles/blog.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fblog-cad297648479c9b81fe847ad0bdf657d.css%22%7D%29%29", "cloud": "/assets/cloud-e761264af9ecf3b01ad5d8deb5e43ad5.js", "/assets/styles/cloud.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fcloud-ece740794b00d30e70c83763358dc8ad.css%22%7D%29%29", "code": "/assets/code-5fce8b30c71ee457fcb7e2630873c57e.js", "components": "/assets/components-c0eda134e831efcfe777f1b2abcd9c4e.js", "/assets/styles/components.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fcomponents-610c937560331814d9ddbc0d7e2c5fb3.css%22%7D%29%29", "components-downloads": "/assets/components-downloads-899b46584825ee6e9d0a168305dda680.js", "/assets/styles/components-downloads.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fcomponents-downloads-ce0cd3bd06382f1b5c2900a9b0643329.css%22%7D%29%29", "download": "/assets/download-a62ed9c2100a867a69b0768dce5aa27b.js", "/assets/styles/download.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fdownload-53c1d7854a73633d8e350387f980bb96.css%22%7D%29%29", "home": "/assets/home-10e0171d98f18dd5c029ff7bf1e272c6.js", "/assets/styles/home.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fhome-7f88a24d2c54119eca4a3c47aaf482ac.css%22%7D%29%29", "jobs": "/assets/jobs-be103937b00f2d766b914ddead1b381b.js", "/assets/styles/jobs.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Fjobs-93b54b3ece823ef64e87f7cc5733340e.css%22%7D%29%29", "legacy": "/assets/legacy-f0a43a9e33b14a100a510cae76a194f6.js", "/assets/styles/legacy.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Flegacy-66528d42bff9478c9d5fef1226c8366d.css%22%7D%29%29", "releases": "/assets/releases-0fb630489a14d353cc90a5f15f4546eb.js", "/assets/styles/releases.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fstyles%2Freleases-2190108805c62f78be931070b1b36bad.css%22%7D%29%29", "support": "/assets/support-3d2321b292a7d005102aa200f6d974ca.js", "@popperjs/core": "/assets/vendor/@popperjs/core/core.index-ceb5b6c0f9e1d3f6c78ef733facfdcda.js", "sortablejs": "/assets/vendor/sortablejs/sortablejs.index-fae068bf1dd93b9616d070d86b7c859d.js", "tom-select": "/assets/vendor/tom-select/tom-select.index-c0036889cf3e94dade1e56c11996b014.js", "tom-select/dist/css/tom-select.bootstrap5.min.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fvendor%2Ftom-select%2Fdist%2Fcss%2Ftom-select.bootstrap5.min-ada7defe0a460fb59edebd9cb32f027a.css%22%7D%29%29", "clipboard": "/assets/vendor/clipboard/clipboard.index-925566f98181665b5a61fea1bcd9033d.js", "asciinema-player": "/assets/vendor/asciinema-player/asciinema-player.index-570112964ad129943315d4774ff2848c.js", "asciinema-player/dist/bundle/asciinema-player.min.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fvendor%2Fasciinema-player%2Fdist%2Fbundle%2Fasciinema-player.min-a05dfa789a7206f64313b61ebd22be96.css%22%7D%29%29", "@symfony/ux-live-component": "/assets/@symfony/ux-live-component/live_controller-b4fdb1f53d5a5f813f85327cceb706b8.js", "bootstrap": "/assets/vendor/bootstrap/bootstrap.index-c0423c99f6075e6b1cef7579b5c00d32.js", "bootstrap/js/src/collapse": "/assets/vendor/bootstrap/js/src/collapse-674fb69f06f8ee1254928307c13a98ee.js", "bootstrap/js/src/tab": "/assets/vendor/bootstrap/js/src/tab-7e2e431aae5d98b88d2f18d7c8e234f6.js", "bootstrap/js/src/dropdown": "/assets/vendor/bootstrap/js/src/dropdown-5c9d4a6d933f30fca054706951f97f80.js", "bootstrap/js/src/popover": "/assets/vendor/bootstrap/js/src/popover-138f0dbb5d2642645c5968a4782d3c67.js", "@symfony/ux-map/abstract-map-controller": "/assets/@symfony/ux-map/abstract_map_controller-eb94e55237a8107b072a686404d36758.js", "@symfony/ux-leaflet-map/map-controller": "/assets/@symfony/ux-leaflet-map/map_controller-975755623ba9069450e62093d97cea8f.js", "leaflet": "/assets/vendor/leaflet/leaflet.index-0fc72e43e04be464c7bda1ae45ac26ac.js", "leaflet/dist/leaflet.min.css": "data:application/javascript,document.head.appendChild%28Object.assign%28document.createElement%28%22link%22%29%2C%7Brel%3A%22stylesheet%22%2Chref%3A%22%2Fassets%2Fvendor%2Fleaflet%2Fdist%2Fleaflet.min-af732ed3306b383c4b260f42b19ee75f.css%22%7D%29%29", "@hotwired/turbo": "/assets/vendor/@hotwired/turbo/turbo.index-810f44ef1a202a441e4866b7a4c72d11.js", "emoji-mart": "/assets/vendor/emoji-mart/emoji-mart.index-dda5113ca0dd7ec52a0d00ea99c8e945.js", "@symfony/ux-leaflet-map": "/assets/@symfony/ux-leaflet-map/map_controller-975755623ba9069450e62093d97cea8f.js" } } </script> <!-- ES Module Shims: Import maps polyfill for modules browsers without import maps support --> <script async src="https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js" data-turbo-track="reload"></script> <link rel="modulepreload" href="/assets/app-8a87453761810fb014e976bf960715d7.js"> <link rel="modulepreload" href="/assets/vendor/bootstrap/js/src/offcanvas-6e548788bdb299ccf15bad01f85a1c4e.js"> <link rel="modulepreload" href="/assets/stimulus-97656ab68e522ab9732b853e32a2116f.js"> <link rel="modulepreload" href="/assets/@symfony/stimulus-bundle/loader-870999a02e9fc147c034d522826ea70d.js"> <link rel="modulepreload" href="/assets/vendor/@hotwired/stimulus/stimulus.index-b5b1d00e42695b8959b4a1e94e3bc92a.js"> <link rel="modulepreload" href="/assets/@symfony/stimulus-bundle/controllers-30ef92e440b067edafb440f89903311e.js"> <link rel="modulepreload" href="/assets/@symfony/ux-live-component/live_controller-b4fdb1f53d5a5f813f85327cceb706b8.js"> <link rel="modulepreload" href="/assets/controllers/eventsmap_controller-dec85c248dc518bcca1ff8c1772842bc.js"> <link rel="modulepreload" href="/assets/search-04960a6f9bd1902ecc44ef024e74ecb9.js"> <link rel="modulepreload" href="/assets/vendor/mousetrap/mousetrap.index-2fcbabba04c2773c43d7b248b7bfcc5e.js"> <link rel="modulepreload" href="/assets/doc-f53df194d5b1babeef5401af8562c6af.js"> <link rel="modulepreload" href="/assets/code-5fce8b30c71ee457fcb7e2630873c57e.js"> <script type="module" data-turbo-track="reload">import 'app';import 'search';import 'doc';</script> <link rel="stylesheet" href="https://connect.symfony.com/css/sln.css"> <script type="text/javascript" defer> document.head.appendChild(Object.assign(document.createElement('script'), { src: 'https://connect.symfony.com/sln.js?customize_url=https%3A%2F%2Fsymfony.com%2Faccount%2Fsln_customiser.js', async: true, })); </script> <link rel="shortcut icon" type="image/svg+xml" href="/favicons/favicon.svg"> <link rel="alternate icon" type="image/png" sizes="180x180" href="/favicons/favicon-180x180.png"> <link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#5bbad5"> <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"> <link rel="manifest" href="/static/webmanifest.json"> <meta name="msapplication-config" content="/static/browserconfig.xml" /> <meta name="theme-color" content="#ffffff"> <meta name="apple-mobile-web-app-title" content="Symfony"> <meta property="fb:pages" content="211720082183067"> <meta name="twitter:site" content="@symfony"> <meta name="twitter:card" content="summary_large_image" /> <meta property="og:type" content="website"> <meta property="og:title" content="Symfony Documentation"> <meta property="og:image" content="https://symfony.com/images/opengraph/symfony.png"> <meta property="og:image:alt" content="Symfony documentation includes articles, tutorials and books to learn about the Symfony PHP framework and its components."> <meta property="og:url" content="https://symfony.com/doc/current/index.html"> <meta property="og:description" content="Symfony documentation includes articles, tutorials and books to learn about the Symfony PHP framework and its components."> <meta name="msapplication-TileColor" content="#262626"> <meta name="application-name" content="Symfony"> <meta name="msapplication-tooltip" content="Official Symfony website"> <meta name="theme-color" content="#262626"> <script async="true" data-browser-key="708cc1e7d4caf1babcf4add8f85ee4bab46c2fc9583f44e11b2bd8fb8a6d87ab" data-sample-rate="0.010000" data-parent-trace-id="6b98bfc2cf8a973f7baf9896ef85a563" data-transaction-name="App\Controller\DocController::docIndexAction" data-collector="https://ingest.blackfire.io" src="https://admin.pipeline.blackfire.io/js/probe.js"></script></head> <body data-turbo="false" class="" > <a href="#main-content" class="show-on-focus skip-to-content">Skip to content</a> <script> function setSymfonyWebsiteColorScheme () { const selectedColorScheme = localStorage.getItem('colorScheme') || 'sync'; const resolvedColorScheme = 'sync' === selectedColorScheme ? matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : selectedColorScheme; document.body.classList.remove('light-theme', 'dark-theme'); document.body.classList.add('light' === resolvedColorScheme ? 'light-theme' : 'dark-theme'); document.body.setAttribute('data-bs-theme', resolvedColorScheme); localStorage.setItem('colorScheme', selectedColorScheme); document.body.style.colorScheme = resolvedColorScheme; } setSymfonyWebsiteColorScheme(); window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) { setSymfonyWebsiteColorScheme(); }); document.body.classList.add( (navigator.appVersion.indexOf('Win') !== -1) ? 'windows' : (navigator.appVersion.indexOf('Mac') !== -1) ? 'macos' : 'linux' ); </script> <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> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/symfony.com","name":"Symfony","logo":"\/images\/logos\/sf-positive.svg","sameAs":["https:\/\/github.com\/symfony","https:\/\/stackoverflow.com\/questions\/tagged\/symfony","https:\/\/twitter.com\/symfony","https:\/\/www.facebook.com\/SymfonyFramework","https:\/\/www.youtube.com\/user\/SensioLabs"]}</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyCon Vienna 2024","image":"\/images\/conferences\/sfcon.svg","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/live.symfony.com"},"location":{"@type":"Place","address":{"@type":"PostalAddress","streetAddress":"Austria Center Vienna, Entrance n\u00b02, Bruno-Kreisky-Platz 1, , A-1220 Wien, Austria","addressLocality":"Vienna","addressCountry":"AT"},"geo":{"@type":"GeoCoordinates","latitude":48.235390000000002,"longitude":16.414549999999998}},"url":"https:\/\/live.symfony.com\/2024-vienna-con\/","startDate":"2024-12-05","endDate":"2024-12-06","offers":[{"@type":"Offer","price":399,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2023-12-07T00:00:00+01:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":490,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2024-04-09T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":659,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2024-10-17T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":759,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2024-11-21T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":919,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2024-12-03T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2024-vienna-con\/registration\/","validFrom":"2024-12-07T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OnlineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"Symfony January 2025","image":"\/images\/conferences\/sfcon.svg","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/live.symfony.com"},"location":{"@type":"VirtualLocation","url":"https:\/\/live.symfony.com\/2025-online-january\/"},"url":"https:\/\/live.symfony.com\/2025-online-january\/","startDate":"2025-01-16","endDate":"2025-01-17","offers":[{"@type":"Offer","price":79,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-january\/registration\/","validFrom":"2024-06-06T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":119,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-january\/registration\/","validFrom":"2024-09-10T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-january\/registration\/","validFrom":"2024-11-12T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-january\/registration\/","validFrom":"2025-01-18T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyLive Paris 2025","image":"\/images\/conferences\/sflive.svg","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/live.symfony.com"},"location":{"@type":"Place","address":{"@type":"PostalAddress","streetAddress":"17, boulevard Jourdan, 75014 Paris","addressLocality":"Paris","addressCountry":"FR"},"geo":{"@type":"GeoCoordinates","latitude":48.820039999999999,"longitude":2.3388499999999999}},"url":"https:\/\/live.symfony.com\/2025-paris\/","startDate":"2025-03-27","endDate":"2025-03-28","offers":[{"@type":"Offer","price":349,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2024-03-29T15:00:00+01:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":399,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2024-09-26T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":499,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2025-01-23T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":549,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2025-02-27T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":599,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2025-03-26T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-paris\/registration\/","validFrom":"2025-03-30T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"}]}</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OfflineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"SymfonyLive Berlin 2025","image":"\/images\/conferences\/sflive.svg","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/live.symfony.com"},"location":{"@type":"Place","address":{"@type":"PostalAddress","streetAddress":"CineStar CUBIX, Rathausstrasse 1, 10178 Berlin, Germany","addressLocality":"Berlin","addressCountry":"DE"},"geo":{"@type":"GeoCoordinates","latitude":52.520310000000002,"longitude":13.41194}},"url":"https:\/\/live.symfony.com\/2025-berlin\/","startDate":"2025-04-03","endDate":"2025-04-04","offers":[{"@type":"Offer","price":399,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-berlin\/registration\/","validFrom":"2024-07-09T00:00:00+02:00","availability":"https:\/\/schema.org\/SoldOut"},{"@type":"Offer","price":499,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-berlin\/registration\/","validFrom":"2024-10-08T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":549,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-berlin\/registration\/","validFrom":"2025-01-28T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":599,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-berlin\/registration\/","validFrom":"2025-03-04T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":649,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-berlin\/registration\/","validFrom":"2025-04-01T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"}]}</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Event","eventAttendanceMode":"OnlineEventAttendanceMode","eventStatus":"https:\/\/schema.org\/EventScheduled","name":"Symfony June 2025","image":"\/images\/conferences\/sfcon.svg","organizer":{"@type":"Organization","name":"Symfony","url":"https:\/\/live.symfony.com"},"location":{"@type":"VirtualLocation","url":"https:\/\/live.symfony.com\/2025-online-june\/"},"url":"https:\/\/live.symfony.com\/2025-online-june\/","startDate":"2025-06-12","endDate":"2025-06-13","offers":[{"@type":"Offer","price":79,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-june\/registration\/","validFrom":"2024-10-01T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":119,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-june\/registration\/","validFrom":"2025-02-20T00:00:00+01:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-june\/registration\/","validFrom":"2025-05-08T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"},{"@type":"Offer","price":149,"priceCurrency":"EUR","url":"https:\/\/live.symfony.com\/2025-online-june\/registration\/","validFrom":"2025-06-14T00:00:00+02:00","availability":"https:\/\/schema.org\/InStock"}]}</script> <div id="sln"></div> <header> <div class="ui-page-container "> <nav class="navbar navbar-expand-lg"> <a class="navbar-brand" href="/" aria-label="Symfony"> <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.611-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> </a> <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"> <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> </button> <div class="offcanvas offcanvas-end" tabindex="-1" id="header-nav-menu"> <div class="offcanvas-header justify-content-end"> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close">Close</button> </div> <div class="offcanvas-body align-items-center"> <div id="sensiolabs-highlight-responsive-menu"></div> <ul class="navbar-nav flex-grow-1" role="menubar" aria-label="Menu"> <li role="none" class="nav-item"> <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">About</span> <div class="submenu"> <ul role="menu" aria-label="About"> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/what-is-symfony">What is Symfony?</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/community">Community</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/blog/">News</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/doc/current/contributing/index.html">Contributing</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/support">Support</a> </li> </ul> </div> </li> <li role="none" class="nav-item"> <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">Documentation</span> <div class="submenu"> <ul role="menu" aria-label="Documentation"> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/doc/current/index.html">Symfony Docs</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/book">Symfony Book</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="https://symfonycasts.com">Screencasts</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/bundles">Symfony Bundles</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="/doc/cloud/">Symfony Cloud</a> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <a role="menuitem" class="nav-link" href="https://sensiolabs.com/training?utm_source=symfony&utm_medium=symfony_submenu&utm_campaign=permanent_referral">Training</a> </li> </ul> </div> </li> <li role="none" class="nav-item menu-services"> <span tabindex="0" class="nav-header" role="menuitem" aria-haspopup="true" aria-expanded="false">Services</span> <div class="submenu"> <ul role="menu" aria-label="Services"> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <span> <a role="menuitem" class="nav-link" href="/cloud/">Platform.sh for Symfony</a> <span class="nav-link-description">Best platform to deploy Symfony apps</span> </span> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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="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> </span> <span> <a role="menuitem" class="nav-link" href="https://insight.symfony.com">SymfonyInsight</a> <span class="nav-link-description">Automatic quality checks for your apps</span> </span> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <span> <a role="menuitem" class="nav-link" href="https://certification.symfony.com">Symfony Certification</a> <span class="nav-link-description">Prove your knowledge and boost your career</span> </span> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <span> <a role="menuitem" class="nav-link" href="https://sensiolabs.com/?utm_source=symfony&utm_medium=symfony_submenu&utm_campaign=permanent_referral">SensioLabs</a> <span class="nav-link-description">Professional services to help you with Symfony</span> </span> </li> <li role="none" class="nav-link-with-icon"> <span class="nav-link-icon"> <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> </span> <span> <a role="menuitem" class="nav-link" href="https://www.blackfire.io/?utm_source=symfony&amp;utm_medium=symfonycom_footer&amp;utm_campaign=profiler">Blackfire</a> <span class="nav-link-description">Profile and monitor performance of your apps</span> </span> </li> </ul> </div> </li> <li role="none" class="d-lg-none"> <span class="nav-header">Other</span> </li> <li role="none" class="nav-item nav-item-standalone"> <a role="menuitem" class="nav-link" href="/blog/">Blog</a> </li> <li role="none" class="nav-item nav-item-standalone"> <a role="menuitem" class="nav-link" href="/download">Download</a> </li> </ul> <div class="sensiolabs d-none d-lg-block text-center position-relative"> <span class="byline">sponsored by</span> <a target="_blank" class="ui-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."> <span class="dark-theme d-md-none"> <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> .logo-sensiolabs path.sensio-word { fill: #000000; } .logo-sensiolabs path.labs-word { fill: #82E83F; } .dark-theme .logo-sensiolabs path.sensio-word { fill: #FFFFFF; } </style><g> <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> <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> <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> <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> <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> <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> </g><g> <path class="labs-word" d="M195.349,49.579V1.357h9.817v40.03h19.409v8.191H195.349z"></path> <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> <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> <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-7.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> </g></svg> </span> <span class="d-none d-md-inline-block"> <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> .logo-sensiolabs path.sensio-word { fill: #000000; } .logo-sensiolabs path.labs-word { fill: #82E83F; } .dark-theme .logo-sensiolabs path.sensio-word { fill: #FFFFFF; } </style><g> <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> <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> <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> <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> <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> <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> </g><g> <path class="labs-word" d="M195.349,49.579V1.357h9.817v40.03h19.409v8.191H195.349z"></path> <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> <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> <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-7.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> </g></svg> </span> </a> </div> </div> </div> </nav> </div> </header> <aside class="highlight-top-horizontal"> <style> .top-horizontal-highlights { background: #18181B; font-family: ui-sans-serif, 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"; font-size: 16px; position: relative; width: 100%; } .top-horizontal-highlights a::after { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 100%; } .top-horizontal-highlight { align-items: center; display: flex; flex-wrap: nowrap; padding: 12px 0; } a.top-horizontal-highlight-title, a.top-horizontal-highlight-title:hover { color: #ffff00; font-weight: 600; } .top-horizontal-highlight-data { color: #ffffff; display: none; font-size: 15px; margin-left: 30px; } .truncate-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .nowrap-text { white-space: nowrap; } .only-visible-on-small-screens { display: inline-block; } @media (min-width: 768px) { .top-horizontal-highlight-data { display: block; margin-left: 30px; } .only-visible-on-small-screens { display: none; } } .dark-theme .top-horizontal-highlights { background: #ffd700; } .dark-theme a.top-horizontal-highlight-title, .dark-theme a.top-horizontal-highlight-title:hover { color: #18181B; } .dark-theme .top-horizontal-highlight-data { color: #18181B; } </style> <div class="top-horizontal-highlights"> <div class="ui-page-container "> <div class="top-horizontal-highlight"> <a class="top-horizontal-highlight-title" href="https://symfony.com/blog/black-friday-2024-offers-from-the-symfony-ecosystem"> <span class="nowrap-text">Black Friday 2024 <span class="only-visible-on-small-screens">discounts</span></span> </a> <span class="top-horizontal-highlight-data truncate-text"> 30% discount on Symfony, Twig and Sylius certifications <strong>(offer ends in 4 days)</strong> </span> </div> </div> </div> </aside> <main id="main-content" class="ui-page-main-content "> <div class="ui-page-container"> <article class="content"> <div class="d-md-flex align-items-start justify-content-between"> <div> <div class="ui-heading mb-1"> <h1 id="symfony-documentation" class="ui-heading-title"> <a class="ui-heading-link" title="Permanent link to this headline" href="#symfony-documentation">Symfony Documentation</a> </h1> </div> <details class="doc-newcomers"> <summary>Where to start if you are new to Symfony?</summary> <div class="ui-prose"> <div class="doc-newcomers-contents"> <div class="doc-newcomers-section"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0M3 6v13m9-13v13m9-13v13"></path></svg> <p> If you prefer <strong>traditional learning</strong>, start by reading all the articles in the <strong>Getting Started</strong> section on this page. They'll teach you the basics you need to start working on Symfony projects. Then, read the other articles when you need to use those features. </p> </div> <div class="doc-newcomers-section"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> <p> If you prefer <strong>learning from a teacher</strong>, watch the <a href="https://symfonycasts.com/screencast/symfony">free video course on Symfony</a> from SymfonyCasts. After that, review the <strong>Getting Started</strong> articles to make your foundation stronger, and check out more articles when you need them. </p> </div> <div class="doc-newcomers-section"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3-5a9 9 0 0 0 6-8a3 3 0 0 0-3-3a9 9 0 0 0-8 6a6 6 0 0 0-5 3"></path><path d="M7 14a6 6 0 0 0-3 6a6 6 0 0 0 6-3m4-8a1 1 0 1 0 2 0a1 1 0 1 0-2 0"></path></g></svg> <p> If you prefer <strong>learning by doing</strong>, start with the <a href="https://github.com/symfony/demo">Symfony Demo application</a>. Install it, play around with it, and don't worry about breaking things. The source code has lots of links to documentation. Later, go back to the <strong>Getting Started</strong> articles to reinforce the basics, and explore more articles as needed. </p> </div> <div class="doc-newcomers-section"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> <p> If you prefer <strong>learning from books</strong>, read the <a class="internal" href="/book">official Symfony book</a> for a quick overview of building a real application from scratch. After that, read the <strong>Getting Started</strong> articles to improve your skills and explore the other articles as needed. </p> </div> </div> </div> </details> </div> <div class="is-doc-index-page search-container doc-index-top-search-wrapper mt-3 mt-md-1"> <div class="search-container" data-controller="live" data-live-name-value="Search" data-live-url-value="&#x2F;_components&#x2F;Search" id="live-2308103015-0" data-live-props-value="&#x7B;&quot;query&quot;&#x3A;null,&quot;&#x40;attributes&quot;&#x3A;&#x7B;&quot;id&quot;&#x3A;&quot;live-2308103015-0&quot;&#x7D;,&quot;&#x40;checksum&quot;&#x3A;&quot;T8w3JMMlYNTMVShvf&#x5C;&#x2F;H5DoH&#x2B;tLNjpWjA5vhKHU9v&#x2B;GQ&#x3D;&quot;&#x7D;"> <form id="form-search"> <div class="form-group form-search-input"> <label for="form-search-input" class="visually-hidden">Search Symfony Docs</label> <input type="search" name="q" data-model="query" value="" class="mousetrap form-control ui-form-control-rounded ui-form-control-search-icon form-search-input" placeholder="Search Symfony Docs" aria-label="Search in Symfony documentation" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false"> </div> <button type="submit" class="visually-hidden">Search</button> </form> </div> </div> </div> <div class="row doc-index-links"> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0M3 6v13m9-13v13m9-13v13"></path></svg> </span> <div class="ui-heading"> <h2 id="getting-started" class="ui-heading-title"> Getting Started </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/setup.html">Setup / Installation</a> </li> <li> <a class="stretched-link" href="/doc/7.1/page_creation.html">Creating Pages</a> </li> <li> <a class="stretched-link" href="/doc/7.1/routing.html">Routing / Generating URLs</a> </li> <li> <a class="stretched-link" href="/doc/7.1/controller.html">Controllers</a> </li> <li> <a class="stretched-link" href="/doc/7.1/templates.html">Templates / Twig</a> </li> <li> <a class="stretched-link" href="/doc/7.1/configuration.html">Configuration / Env Vars</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4L4 8l8 4l8-4zm-8 8l8 4l8-4M4 16l8 4l8-4"></path></svg> </span> <div class="ui-heading"> <h2 id="architecture" class="ui-heading-title"> Architecture </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/components/http_kernel.html">Requests / Responses</a> </li> <li> <a class="stretched-link" href="/doc/7.1/reference/configuration/kernel.html">Kernel</a> </li> <li> <a class="stretched-link" href="/doc/7.1/service_container.html">Services / DI</a> </li> <li> <a class="stretched-link" href="/doc/7.1/event_dispatcher.html">Events</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/contracts.html">Contracts</a> </li> <li> <a class="stretched-link" href="/doc/7.1/bundles.html">Bundles</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> </span> <div class="ui-heading"> <h2 id="the-basics" class="ui-heading-title"> The Basics </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/doctrine.html">Databases / Doctrine</a> </li> <li> <a class="stretched-link" href="/doc/7.1/forms.html">Forms</a> </li> <li> <a class="stretched-link" href="/doc/7.1/testing.html">Tests</a> </li> <li> <a class="stretched-link" href="/doc/7.1/session.html">Sessions</a> </li> <li> <a class="stretched-link" href="/doc/7.1/cache.html">Cache</a> </li> <li> <a class="stretched-link" href="/doc/7.1/logging.html">Logger</a> </li> <li> <a class="stretched-link" href="/doc/7.1/controller/error_pages.html">Errors / Debugging</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3-5a9 9 0 0 0 6-8a3 3 0 0 0-3-3a9 9 0 0 0-8 6a6 6 0 0 0-5 3"></path><path d="M7 14a6 6 0 0 0-3 6a6 6 0 0 0 6-3m4-8a1 1 0 1 0 2 0a1 1 0 1 0-2 0"></path></g></svg> </span> <div class="ui-heading"> <h2 id="advanced-topics" class="ui-heading-title"> Advanced Topics </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/console.html">Console</a> </li> <li> <a class="stretched-link" href="/doc/7.1/mailer.html">Mailer / Emails</a> </li> <li> <a class="stretched-link" href="/doc/7.1/validation.html">Validation</a> </li> <li> <a class="stretched-link" href="/doc/7.1/messenger.html">Messaging / Queues</a> </li> <li> <a class="stretched-link" href="/doc/7.1/scheduler.html">Scheduler / Cron tasks</a> </li> <li> <a class="stretched-link" href="/doc/7.1/notifier.html">Notifications</a> </li> <li> <a class="stretched-link" href="/doc/7.1/serializer.html">Serialization</a> </li> <li> <a class="stretched-link" href="/doc/7.1/translation.html">Translation / i18n</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M5 13a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z"></path><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0-2 0m-3-5V7a4 4 0 1 1 8 0v4"></path></g></svg> </span> <div class="ui-heading"> <h2 id="security" class="ui-heading-title"> Security </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/security.html">Introduction</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security.html#the-user">Users</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security.html#the-firewall">Authentication / Firewalls</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security.html#access-control-authorization">Authorization / Voters</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security/passwords.html">Passwords</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security/csrf.html">CSRF</a> </li> <li> <a class="stretched-link" href="/doc/7.1/security/ldap.html">LDAP</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M15 8h.01M3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z"></path><path d="m3 16l5-5c.928-.893 2.072-.893 3 0l5 5"></path><path d="m14 14l1-1c.928-.893 2.072-.893 3 0l3 3"></path></g></svg> </span> <div class="ui-heading"> <h2 id="front-end" class="ui-heading-title"> Front-end </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/frontend.html">Introduction</a> </li> <li> <a class="stretched-link" href="/doc/7.1/frontend/asset_mapper.html">AssetMapper</a> </li> <li> <a class="stretched-link" href="/bundles/StimulusBundle/current/index.html">Symfony UX / Stimulus</a> </li> <li> <a class="stretched-link" href="/doc/7.1/frontend/encore/index.html">Webpack Encore</a> </li> <li> <a class="stretched-link" href="/doc/7.1/web_link.html">WebLink</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065"></path><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0"></path></g></svg> </span> <div class="ui-heading"> <h2 id="utilities" class="ui-heading-title"> Utilities </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/http_client.html">HTTP Client</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/filesystem.html">Files / Filesystem</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/expression_language.html">Expression Language</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/lock.html">Locks</a> </li> <li> <a class="stretched-link" href="/doc/7.1/workflow.html">Workflows</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/string.html">Strings / Unicode</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/uid.html">UID / UUID</a> </li> <li> <a class="stretched-link" href="https://github.com/symfony/polyfill">PHP Polyfills</a> </li> <li> <a class="stretched-link" href="/doc/7.1/components/yaml.html">YAML Parser</a> </li> <li> <a class="stretched-link" href="/doc/7.1/webhook.html">Webhooks</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-3 list-of-contents"> <span class="content-section-icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> </span> <div class="ui-heading"> <h2 id="production" class="ui-heading-title"> Production </h2> </div> <ul> <li> <a class="stretched-link" href="/doc/7.1/deployment.html">Deployment</a> </li> <li> <a class="stretched-link" href="/doc/7.1/performance.html">Performance</a> </li> <li> <a class="stretched-link" href="/doc/7.1/http_cache.html">HTTP Cache</a> </li> <li> <a class="stretched-link" href="/doc/7.1/cloud/index.html">Cloud / Platform.sh</a> </li> </ul> </div> </div> <div class="row doc-index-highlights"> <div class="col-12 col-md-4 doc-index-highlight"> <div class="ui-heading"> <h2 id="symfony-training" class="ui-heading-title"> <span class="icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> </span> <a class="ui-stretched-link" href="https://sensiolabs.com/training?utm_source=symfony&utm_medium=symfony_doc_index&utm_campaign=permanent_referral">Symfony Training</a> </h2> </div> <p>Get trained with official courses from the creator of the Symfony framework:</p> <ul class="ui-list-disc"> <li><a href="https://training.sensiolabs.com/en/courses/SF7PRECERTIF-preparation-symfony-7-certification-online-sensiolabs-university?utm_source=symfony&utm_medium=symfony_homepage&utm_campaign=permanent_referral">Symfony Certification Coaching</a></li> <li><a href="https://training.sensiolabs.com/en/?utm_source=symfony&utm_medium=symfony_homepage&utm_campaign=permanent_referral">Symfony 7 Training Courses</a></li> <li><a href="https://university.sensiolabs.com/e-learning-platform?utm_source=symfony&utm_medium=symfony_homepage&utm_campaign=permanent_referral">SensioLabs University eLearning platform</a></li> </ul> </div> <div class="col-12 col-md-4 doc-index-highlight"> <div class="ui-heading"> <h2 id="symfony-certifications" class="ui-heading-title"> <span class="icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> </span> <a class="ui-stretched-link" href="https://certification.symfony.com">Symfony Certifications</a> </h2> </div> <p>Certify your skills to become a Symfony expert and boost your career:</p> <ul class="ui-list-disc"> <li><a href="https://certification.symfony.com/exams/symfony.html">Symfony Certification</a></li> <li><a href="https://certification.symfony.com/exams/twig.html">Twig Certification</a></li> </ul> </div> <div class="col-12 col-md-4 doc-index-highlight"> <div class="ui-heading"> <h2 id="symfonycasts" class="ui-heading-title"> <span class="icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><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> </span> <a class="ui-stretched-link" href="https://symfonycasts.com">SymfonyCasts</a> </h2> </div> <p>Learn Symfony, PHP and JavaScript with these video tutorials:</p> <ul class="ui-list-disc"> <li> <a href="https://symfonycasts.com/screencast/design-patterns-2">Design Patterns Episode 2</a> </li> <li> <a href="https://symfonycasts.com/screencast/symfony">Cosmic Coding with Symfony 7</a> </li> <li> <a href="https://symfonycasts.com/screencast/api-platform">API Platform 3 Part 1: Mythically Good RESTful APIs</a> </li> </ul> </div> </div> <div class="row doc-index-extra-resources"> <div class="col-12 col-lg-6"> <div class="doc-index-book"> <img loading="lazy" width="101" height="150" alt="Cover of the official Symfony book" src="/images/doc/fast-track-book-cover.webp" /> <div> <div class="ui-heading"> <h3 id="symfony-the-fast-track" class="ui-heading-title"> <a class="ui-stretched-link" href="/book">Symfony: The Fast Track</a> </h3> </div> <p> The official Symfony book that gives you a quick overview of the process of building a real application, from Symfony installation to production deployment. </p> </div> </div> <div class="doc-index-contributing"> <div> <span class="icon"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 18a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0m12 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0M6 8v8"></path><path d="M11 6h5a2 2 0 0 1 2 2v8"></path><path d="m14 9l-3-3l3-3"></path></g></svg> </span> </div> <div> <div class="ui-heading"> <h3 id="contributing-to-symfony" class="ui-heading-title"> Contributing to Symfony </h3> </div> <p class="mb-3"> Contribute ideas and bug fixes to the one of the most important Open Source projects. Both experts and newcomers are welcome. </p> <a href="/doc/current/contributing/code/index.html">Contribute Code</a> <a href="/doc/current/contributing/documentation/index.html">Contribute Docs</a> </div> </div> </div> <div class="col-12 col-lg-6"> <div class="doc-index-extra-resource"> <span class="icon flex-shrink-0"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 21h8m-4-4v4M7 4h10m0 0v8a5 5 0 0 1-10 0V4M3 9a2 2 0 1 0 4 0a2 2 0 1 0-4 0m14 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0"></path></svg> </span> <div> <div class="ui-heading"> <h3 id="symfony-best-practices" class="ui-heading-title ui-text-md"> <a class="ui-heading-link" title="Permanent link to this headline" href="#symfony-best-practices"><a class="ui-stretched-link" href="/doc/current/best_practices.html">Symfony Best Practices</a> </a> </h3> <p class="ui-heading-subtitle">These practices are optional but show how to develop web applications as envisioned by the original Symfony creators.</p> </div> </div> </div> <div class="doc-index-extra-resource"> <span class="icon flex-shrink-0"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 21h4L20 8a1.5 1.5 0 0 0-4-4L3 17zM14.5 5.5l4 4"></path><path d="M12 8L7 3L3 7l5 5M7 8L5.5 9.5M16 12l5 5l-4 4l-5-5m4 1l-1.5 1.5"></path></g></svg> </span> <div> <div class="ui-heading"> <h3 id="create-your-own-framework" class="ui-heading-title ui-text-md"> <a class="ui-heading-link" title="Permanent link to this headline" href="#create-your-own-framework"><a class="ui-stretched-link" href="/doc/current/create_framework/index.html">Create Your Own Framework</a> </a> </h3> <p class="ui-heading-subtitle">Learn how to build a custom framework using Symfony components. Ideal to dive deep into Symfony internals.</p> </div> </div> </div> <div class="doc-index-extra-resource"> <span class="icon flex-shrink-0"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2zm4 2h6m-6 4h6m-6 4h4"></path></svg> </span> <div> <div class="ui-heading"> <h3 id="reference-documents" class="ui-heading-title ui-text-md"> <a class="ui-heading-link" title="Permanent link to this headline" href="#reference-documents"><a class="ui-stretched-link" href="/doc/current/reference/index.html">Reference Documents</a> </a> </h3> <p class="ui-heading-subtitle">Reference documents, including all Symfony configuration options.</p> </div> </div> </div> <div class="doc-index-extra-resource"> <span class="icon flex-shrink-0"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zM4 15a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z"></path></svg> </span> <div> <div class="ui-heading"> <h3 id="symfony-components" class="ui-heading-title ui-text-md"> <a class="ui-heading-link" title="Permanent link to this headline" href="#symfony-components"><a class="ui-stretched-link" href="/components">Symfony Components</a> </a> </h3> <p class="ui-heading-subtitle">Stand-alone libraries that you can use in any PHP project.</p> </div> </div> </div> <div class="doc-index-extra-resource"> <span class="icon flex-shrink-0"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="thin-icon"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 16.008V7.99a1.98 1.98 0 0 0-1-1.717l-7-4.008a2.02 2.02 0 0 0-2 0L4 6.273c-.619.355-1 1.01-1 1.718v8.018c0 .709.381 1.363 1 1.717l7 4.008a2.02 2.02 0 0 0 2 0l7-4.008c.619-.355 1-1.01 1-1.718M12 22V12m0 0l8.73-5.04m-17.46 0L12 12"></path></svg> </span> <div> <div class="ui-heading"> <h3 id="symfony-bundles" class="ui-heading-title ui-text-md"> <a class="ui-heading-link" title="Permanent link to this headline" href="#symfony-bundles"><a class="ui-stretched-link" href="/bundles">Symfony Bundles</a> </a> </h3> <p class="ui-heading-subtitle">Third-party packages that add features to your applications.</p> </div> </div> </div> </div> </div> </article> </div> </main> <footer> <h2 class="visually-hidden">Symfony footer</h2> <div class="footer-content"> <section class="footer-top-wrapper"> <div class="ui-page-container "> <div class="footer-top"> <div class="symfony-contributor"> <div class="d-flex align-items-start px-4 py-3 ui-contributor ui-contributor-horizontal"> <img loading="lazy" width="48" height="48" alt="Avatar of Kris, a Symfony contributor" src="https://www.gravatar.com/avatar/b1db22e03f5ab84a9aa5261cb9c6e133?size=48&amp;rating=g&amp;default=retro" onerror="this.onerror=null; this.src='data:image/svg+xml;utf8,\ <svg xmlns=\'http://www.w3.org/2000/svg\' width=\'100%\' height=\'100%\'>\ <style>\ rect { fill: %23f3f4f6; }\ @media (prefers-color-scheme: dark) { rect { fill: %23374151; } }\ </style>\ <rect width=\'100%\' height=\'100%\'/>\ </svg>'" class="ui-avatar d-inline-block me-3"> <div> <p class="mb-1"> Thanks <strong> Kris </strong> for being a Symfony contributor </p> <p class="mb-1"> <span role="tooltip" aria-label="2 commits"> <strong>2</strong> commits</span> &bull; <span role="tooltip" aria-label="7 lines of code/doc changed"><strong>7</strong> lines changed</span> </p> </div> </div> <p class="mt-3 mb-0"><a class="ui-link fw-semibold" href="/contributors">View all contributors</a> that help us make Symfony</p> </div> <div class="contribute-to-symfony"> <div class="ui-heading"> <h3 id="become-a-symfony-contributor" class="ui-heading-title ui-text-md"> Become a Symfony contributor </h3> </div> <p class="mb-3"> Be an active part of the community and contribute ideas, code and bug fixes. Both experts and newcomers are welcome. </p> <a class="ui-link fw-semibold" href="/doc/current/contributing/index.html">Learn how to contribute</a> </div> </div> </div> </section> <section class="footer-bottom-wrapper"> <div class="ui-page-container "> <div class="footer-bottom"> <p class="mb-3"> <b>Symfony</b>&trade; is a trademark of Symfony SAS. <a href="/trademark">All rights reserved</a>. </p> <ul class="ui-sitemap "> <li> <p class="mb-2 fw-semibold"><a href="/what-is-symfony">What is Symfony?</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="What is Symfony?"> <li class="" role="menuitem"> <a href="/what-is-symfony"> What is Symfony? </a> </li> <li class="" role="menuitem"> <a href="/at-a-glance"> Symfony at a Glance </a> </li> <li class="" role="menuitem"> <a href="/components"> Symfony Components </a> </li> <li class="" role="menuitem"> <a href="/releases"> Symfony Releases </a> </li> <li class="" role="menuitem"> <a href="/doc/current/contributing/code/security.html"> Security Policy </a> </li> <li class="" role="menuitem"> <a href="/logo"> Logo &amp; Screenshots </a> </li> <li class="" role="menuitem"> <a href="/license"> Trademark &amp; Licenses </a> </li> <li class="" role="menuitem"> <a href="/legacy"> symfony1 Legacy </a> </li> </ul> </li> <li> <p class="mb-2 fw-semibold"><a href="/doc/current/index.html">Learn Symfony</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="Learn Symfony"> <li class="active" role="menuitem"> <a href="/doc/current/index.html"> Symfony Docs </a> </li> <li class="" role="menuitem"> <a href="/book"> Symfony Book </a> </li> <li class="" role="menuitem"> <a href="/doc/current/reference/index.html"> Reference </a> </li> <li class="" role="menuitem"> <a href="/bundles"> Bundles </a> </li> <li class="" role="menuitem"> <a href="/doc/current/best_practices.html"> Best Practices </a> </li> <li class="" role="menuitem"> <a href="https://sensiolabs.com/training?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral"> Training </a> </li> <li class="" role="menuitem"> <a href="https://university.sensiolabs.com/e-learning-platform?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral"> eLearning Platform </a> </li> <li class="" role="menuitem"> <a href="https://certification.symfony.com/"> Certification </a> </li> </ul> </li> <li> <p class="mb-2 fw-semibold"><a href="https://symfonycasts.com/">Screencasts</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="Screencasts"> <li class="" role="menuitem"> <a href="https://symfonycasts.com/tracks/symfony"> Learn Symfony </a> </li> <li class="" role="menuitem"> <a href="https://symfonycasts.com/tracks/php"> Learn PHP </a> </li> <li class="" role="menuitem"> <a href="https://symfonycasts.com/tracks/javascript"> Learn JavaScript </a> </li> <li class="" role="menuitem"> <a href="https://symfonycasts.com/tracks/drupal"> Learn Drupal </a> </li> <li class="" role="menuitem"> <a href="https://symfonycasts.com/tracks/rest"> Learn RESTful APIs </a> </li> </ul> </li> <li> <p class="mb-2 fw-semibold"><a href="/community">Community</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="Community"> <li class="" role="menuitem"> <a href="/community"> Symfony Community </a> </li> <li class="" role="menuitem"> <a href="https://connect.symfony.com/"> SymfonyConnect </a> </li> <li class="" role="menuitem"> <a href="/events/"> Events &amp; Meetups </a> </li> <li class="" role="menuitem"> <a href="/projects"> Projects using Symfony </a> </li> <li class="" role="menuitem"> <a href="/contributors"> Contributors </a> </li> <li class="" role="menuitem"> <a href="/jobs"> Symfony Jobs </a> </li> <li class="" role="menuitem"> <a href="/backers"> Backers </a> </li> <li class="" role="menuitem"> <a href="/doc/current/contributing/code_of_conduct/code_of_conduct.html"> Code of Conduct </a> </li> <li class="" role="menuitem"> <a href="/stats/downloads"> Downloads Stats </a> </li> <li class="" role="menuitem"> <a href="/support"> Support </a> </li> </ul> </li> <li> <p class="mb-2 fw-semibold"><a href="/blog/">Blog</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="Blog"> <li class="" role="menuitem"> <a href="/blog/"> All Blog Posts </a> </li> <li class="" role="menuitem"> <a href="/blog/category/a-week-of-symfony"> A Week of Symfony </a> </li> <li class="" role="menuitem"> <a href="/blog/category/case-studies"> Case Studies </a> </li> <li class="" role="menuitem"> <a href="/blog/category/cloud"> Cloud </a> </li> <li class="" role="menuitem"> <a href="/blog/category/community"> Community </a> </li> <li class="" role="menuitem"> <a href="/blog/category/conferences"> Conferences </a> </li> <li class="" role="menuitem"> <a href="/blog/category/diversity"> Diversity </a> </li> <li class="" role="menuitem"> <a href="/blog/category/living-on-the-edge"> Living on the edge </a> </li> <li class="" role="menuitem"> <a href="/blog/category/releases"> Releases </a> </li> <li class="" role="menuitem"> <a href="/blog/category/security-advisories"> Security Advisories </a> </li> <li class="" role="menuitem"> <a href="/blog/category/symfony-insight"> Symfony Insight </a> </li> <li class="" role="menuitem"> <a href="/blog/category/twig"> Twig </a> </li> <li class="" role="menuitem"> <a href="https://sensiolabs.com/blog?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral"> SensioLabs Blog </a> </li> </ul> </li> <li> <p class="mb-2 fw-semibold"><a href="https://sensiolabs.com/?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral">Services</a></p> <ul class="ui-sitemap-menu" role="menubar" aria-label="Services"> <li class="" role="menuitem"> <a href="https://sensiolabs.com/?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral"> SensioLabs services </a> </li> <li class="" role="menuitem"> <a href="https://sensiolabs.com/training?utm_source=symfony&amp;utm_medium=symfony_footer&amp;utm_campaign=permanent_referral"> Train developers </a> </li> <li class="" role="menuitem"> <a href="https://insight.symfony.com/"> Manage your project quality </a> </li> <li class="" role="menuitem"> <a href="https://www.blackfire.io/?utm_source=symfony&amp;utm_medium=symfonycom_footer&amp;utm_campaign=profiler"> Improve your project performance </a> </li> <li class="" role="menuitem"> <a href="/cloud/"> Host Symfony projects </a> </li> </ul> <p class="mt-4 mb-2 fw-semibold"><a href="/cloud/">Powered by</a></p> <a href="/cloud/" class="block deploy-logo" title="Platform.sh, a Platform-as-a-Service optimized for Symfony developers" aria-label="Platform.sh"> <span aria-hidden="true"><svg viewBox="0 0 172.62 34.06" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m144.07 0h28.55v11.35h-28.55z"/><path d="m144.07 24.69h28.55v3.86h-28.55z"/><path d="m144.07 15.02h28.55v5.82h-28.55z"/><path d="m0 13.85h3.61v2.15a5.45 5.45 0 0 1 1.9-1.79 5.25 5.25 0 0 1 2.66-.69 5.59 5.59 0 0 1 4.33 2 8.06 8.06 0 0 1 1.78 5.56 8.38 8.38 0 0 1 -1.79 5.71 5.6 5.6 0 0 1 -4.34 2 4.94 4.94 0 0 1 -2.15-.45 7.46 7.46 0 0 1 -2.08-1.66v7.38h-3.92zm3.83 7.07a5.66 5.66 0 0 0 1 3.65 3 3 0 0 0 2.37 1.17 2.78 2.78 0 0 0 2.24-1.08 5.55 5.55 0 0 0 .9-3.55 5.29 5.29 0 0 0 -.93-3.42 2.84 2.84 0 0 0 -2.28-1.11 3 3 0 0 0 -2.36 1.09 4.88 4.88 0 0 0 -.94 3.25z"/><path d="m16.07 28.49v-20.21h3.87v20.21z"/><path d="m25.5 18.32-3.5-.64a5.48 5.48 0 0 1 2-3.14 7.48 7.48 0 0 1 4.3-1 9.4 9.4 0 0 1 3.86.61 3.8 3.8 0 0 1 1.84 1.54 7.89 7.89 0 0 1 .52 3.47v4.52a15 15 0 0 0 .19 2.84 8 8 0 0 0 .69 2h-3.91c-.1-.26-.23-.64-.37-1.15-.07-.23-.11-.38-.14-.45a7 7 0 0 1 -2.12 1.45 6.15 6.15 0 0 1 -2.42.48 5 5 0 0 1 -3.56-1.23 4.05 4.05 0 0 1 -1.3-3.1 4.2 4.2 0 0 1 .59-2.21 3.87 3.87 0 0 1 1.66-1.49 13.49 13.49 0 0 1 3.08-.9 21.67 21.67 0 0 0 3.77-.95v-.39a2 2 0 0 0 -.56-1.58 3.26 3.26 0 0 0 -2.12-.52 2.8 2.8 0 0 0 -1.61.41 2.81 2.81 0 0 0 -.89 1.43zm5.18 3.14c-.5.16-1.29.36-2.36.59a7.55 7.55 0 0 0 -2.11.67 1.65 1.65 0 0 0 -.75 1.37 1.93 1.93 0 0 0 .6 1.41 2.13 2.13 0 0 0 1.54.59 3.34 3.34 0 0 0 2-.69 2.47 2.47 0 0 0 .93-1.28 7.73 7.73 0 0 0 .15-1.89z"/><path d="m43.81 13.85v3.09h-2.64v5.89a15.15 15.15 0 0 0 .07 2.09.82.82 0 0 0 .35.49 1 1 0 0 0 .65.2 5 5 0 0 0 1.56-.38l.33 3a7.63 7.63 0 0 1 -3.06.58 4.93 4.93 0 0 1 -1.89-.35 2.79 2.79 0 0 1 -1.18-.9 3.67 3.67 0 0 1 -.55-1.51 19.41 19.41 0 0 1 -.12-2.73v-6.38h-1.83v-3.09h1.78v-2.91l3.89-2.26v5.17z"/><path d="m44.94 13.85h2.15v-1.1a7.41 7.41 0 0 1 .39-2.75 3.18 3.18 0 0 1 1.45-1.48 5.56 5.56 0 0 1 2.67-.57 10.83 10.83 0 0 1 3.24.49l-.53 2.71a7.42 7.42 0 0 0 -1.77-.23 1.6 1.6 0 0 0 -1.21.4 2.28 2.28 0 0 0 -.33 1.5v1h2.9v3h-2.9v11.67h-3.91v-11.59h-2.15z"/><path d="m54.58 21a8 8 0 0 1 1-3.73 6.59 6.59 0 0 1 2.7-2.76 8 8 0 0 1 3.89-1 7.29 7.29 0 0 1 5.44 2.16 7.43 7.43 0 0 1 2.13 5.45 7.52 7.52 0 0 1 -2.14 5.5 7.24 7.24 0 0 1 -5.4 2.19 8.47 8.47 0 0 1 -3.84-.91 6.3 6.3 0 0 1 -2.78-2.67 8.91 8.91 0 0 1 -1-4.23zm4 .21a4.83 4.83 0 0 0 1 3.33 3.23 3.23 0 0 0 2.54 1.16 3.26 3.26 0 0 0 2.55-1.16 4.93 4.93 0 0 0 1-3.36 4.86 4.86 0 0 0 -1-3.31 3.29 3.29 0 0 0 -2.55-1.15 3.25 3.25 0 0 0 -2.54 1.15 4.86 4.86 0 0 0 -1.03 3.3z"/><path d="m75 28.49h-3.87v-14.64h3.6v2.08a6.06 6.06 0 0 1 1.66-1.93 3.07 3.07 0 0 1 1.67-.47 4.9 4.9 0 0 1 2.55.73l-1.2 3.38a3.32 3.32 0 0 0 -1.82-.64 2.11 2.11 0 0 0 -1.37.45 3 3 0 0 0 -.89 1.62 22.62 22.62 0 0 0 -.33 4.93z"/><path d="m81.77 13.85h3.57v2a5.75 5.75 0 0 1 4.56-2.33 4.87 4.87 0 0 1 2.44.58 4.39 4.39 0 0 1 1.66 1.75 6.73 6.73 0 0 1 2.09-1.75 5 5 0 0 1 2.38-.58 5.36 5.36 0 0 1 2.73.65 4.06 4.06 0 0 1 1.67 1.93 8.44 8.44 0 0 1 .4 3v9.36h-3.85v-8.34a6.16 6.16 0 0 0 -.4-2.81 1.83 1.83 0 0 0 -1.65-.83 2.66 2.66 0 0 0 -1.53.5 2.71 2.71 0 0 0 -1 1.45 10.52 10.52 0 0 0 -.32 3v7h-3.91v-8a11.17 11.17 0 0 0 -.2-2.76 1.76 1.76 0 0 0 -.64-.92 2 2 0 0 0 -1.18-.31 2.82 2.82 0 0 0 -1.59.56 2.7 2.7 0 0 0 -1 1.4 10.2 10.2 0 0 0 -.31 3v7.11h-3.92z"/><path d="m105.23 28.49v-3.88h3.87v3.88z"/><path d="m110.55 24.31 3.89-.59a2.84 2.84 0 0 0 1 1.72 3.4 3.4 0 0 0 2.12.58 3.86 3.86 0 0 0 2.27-.55 1.25 1.25 0 0 0 .5-1 1.05 1.05 0 0 0 -.27-.74 3.09 3.09 0 0 0 -1.3-.5q-4.68-1-5.94-1.89a3.79 3.79 0 0 1 -1.73-3.3 4.09 4.09 0 0 1 1.5-3.2 7 7 0 0 1 4.66-1.29 8 8 0 0 1 4.46 1 5 5 0 0 1 2 2.89l-3.66.68a2.21 2.21 0 0 0 -.89-1.31 3.18 3.18 0 0 0 -1.86-.45 4.33 4.33 0 0 0 -2.2.42.93.93 0 0 0 -.44.79.85.85 0 0 0 .39.7 14.37 14.37 0 0 0 3.62 1.09 10.82 10.82 0 0 1 4.33 1.64 3.58 3.58 0 0 1 1.21 2.88 4.4 4.4 0 0 1 -1.68 3.46 7.42 7.42 0 0 1 -5 1.45 8.07 8.07 0 0 1 -4.73-1.22 5.56 5.56 0 0 1 -2.25-3.26z"/><path d="m129.66 8.28v7.43a5.79 5.79 0 0 1 6.89-1.71 3.92 3.92 0 0 1 1.62 1.26 4.66 4.66 0 0 1 .74 1.71 15.64 15.64 0 0 1 .2 2.91v8.59h-3.87v-7.72a11.35 11.35 0 0 0 -.22-2.92 1.93 1.93 0 0 0 -.78-1 2.53 2.53 0 0 0 -1.4-.37 3.22 3.22 0 0 0 -1.72.47 2.64 2.64 0 0 0 -1.12 1.43 8.63 8.63 0 0 0 -.35 2.8v7.33h-3.87v-20.21z"/></g></svg> </span> </a> </li> </ul> <div class="my-4"> <h3><span>Follow Symfony</span></h3> <div class="d-flex align-items-center flex-wrap mt-3 row-gap-3 column-gap-4"> <a href="https://github.com/symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on GitHub"> <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> </a> <a href="/slack" target="_blank" rel="external noopener noreferrer" title="Symfony on Slack"> <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.165a2.53 2.53 0 0 1-2.522 2.523z"></path></svg> </a> <a href="https://twitter.com/symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Twitter"> <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> </a> <a href="https://mastodon.social/@symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Mastodon"> <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> </a> <a href="https://www.linkedin.com/company/symfony-sas/" target="_blank" rel="me external noopener noreferrer" title="Symfony on LinkedIn"> <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> </a> <a href="https://www.facebook.com/SymfonyFramework" target="_blank" rel="me external noopener noreferrer" title="Symfony on Facebook"> <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> </a> <a href="https://www.youtube.com/symfonytv" target="_blank" rel="me external noopener noreferrer" title="Symfony on YouTube"> <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> </a> <a href="https://bsky.app/profile/symfony.bsky.social" target="_blank" rel="me external noopener noreferrer" title="Symfony on BlueSky"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" font-size="32px"><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> </a> <a href="https://www.threads.net/@symfony" target="_blank" rel="me external noopener noreferrer" title="Symfony on Threads"> <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> </a> <a href="https://symfonycasts.com/" target="_blank" rel="me external noopener noreferrer" title="Symfony Screencasts"> <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.741 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> </a> <a href="https://feeds.feedburner.com/symfony/blog" target="_blank" rel="external noopener noreferrer" title="Symfony Blog RSS"> <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> </a> </div> </div> <div class="theme"> <form class="d-flex align-items-center"> <label for="color-scheme-switcher"> <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> <span class="visually-hidden">Site appearance:</span> </label> <select id="color-scheme-switcher" autocomplete="off"> <option value="light">Light mode</option> <option value="dark">Dark mode</option> <option value="sync" selected>Sync with system</option> </select> </form> </div> <script async> const colorSchemeSwitcher = document.getElementById('color-scheme-switcher'); const currentScheme = localStorage.getItem('colorScheme'); colorSchemeSwitcher.value = currentScheme; colorSchemeSwitcher.addEventListener('change', function () { const selectedColorScheme = colorSchemeSwitcher.value; let resolvedColorScheme = selectedColorScheme; if ('sync' === resolvedColorScheme) { resolvedColorScheme = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } document.body.classList.remove('light-theme', 'dark-theme'); document.body.classList.add('light' === resolvedColorScheme ? 'light-theme' : 'dark-theme'); localStorage.setItem('colorScheme', selectedColorScheme); document.body.style.colorScheme = resolvedColorScheme; }); </script> </div> </div> </section> </div> </footer> <div id="search-modal-backdrop" class="search-container" style="display: none"> <div role="dialog" aria-modal="true" id="search-modal-content" tabindex="-1"> <button aria-label="Close modal" id="search-modal-close-button">CLOSE</button> <div class="search-container" data-controller="live" data-live-name-value="Search" data-live-url-value="&#x2F;_components&#x2F;Search" id="live-2308103015-0" data-live-props-value="&#x7B;&quot;query&quot;&#x3A;null,&quot;&#x40;attributes&quot;&#x3A;&#x7B;&quot;id&quot;&#x3A;&quot;live-2308103015-0&quot;&#x7D;,&quot;&#x40;checksum&quot;&#x3A;&quot;T8w3JMMlYNTMVShvf&#x5C;&#x2F;H5DoH&#x2B;tLNjpWjA5vhKHU9v&#x2B;GQ&#x3D;&quot;&#x7D;"> <form id="form-search"> <div class="form-group form-search-input"> <label for="form-search-input" class="visually-hidden">Search Symfony Docs</label> <input type="search" name="q" data-model="query" value="" class="mousetrap form-control ui-form-control-rounded ui-form-control-search-icon form-search-input" placeholder="Search Symfony Docs" aria-label="Search in Symfony documentation" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false"> </div> <button type="submit" class="visually-hidden">Search</button> </form> </div> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10