CINXE.COM
Configuring in the Kernel (Symfony 7.1 Docs)
<!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 applications define a kernel class (which is located by default at src/Kernel.php) that includes several configurable options. This article explains how to configure those options and shows th…"> <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>Configuring in the Kernel (Symfony 7.1 Docs)</title> <link rel="canonical" href="https://symfony.com/doc/current/reference/configuration/kernel.html" /> <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap" rel="stylesheet"> <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="Configuring in the Kernel (Symfony 7.1 Docs)"> <meta property="og:image" content="https://symfony.com/images/opengraph/symfony.png"> <meta property="og:image:alt" content="Symfony applications define a kernel class (which is located by default at src/Kernel.php) that includes several configurable options. This article explains how to configure those options and shows th…"> <meta property="og:url" content="https://symfony.com/doc/7.1/reference/configuration/kernel.html"> <meta property="og:description" content="Symfony applications define a kernel class (which is located by default at src/Kernel.php) that includes several configurable options. This article explains how to configure those options and shows th…"> <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="25749216e64ea999831b924ed5ad188c" data-transaction-name="App\Controller\DocController::docAction" data-collector="https://ingest.blackfire.io" src="https://admin.pipeline.blackfire.io/js/probe.js"></script></head> <body data-turbo="false" class="" data-is-doc-page data-doc-book="symfony" data-doc-page="reference/configuration/kernel"> <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 ui-page-container-wide"> <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&utm_medium=symfonycom_footer&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: #ffa500; 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: #ffa500; } .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 ui-page-container-wide"> <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"> 40% discount on your SymfonyCasts subscription or renewal <strong>(offer ends in 2 days)</strong> </span> </div> </div> </div> </aside> <nav class="breadcrumb-nav d-none d-sm-block" aria-label="breadcrumb"> <div class="ui-page-container ui-page-container-wide"> <ol class="breadcrumb ui-text-muted flex-nowrap pt-2"> <li class="breadcrumb-item "> <a href="/" class="ui-link-muted">Home</a> </li> <li class="breadcrumb-item text-truncate"> <a href="/doc/7.1/index.html" class="ui-link-muted">Documentation</a> </li> <li class="breadcrumb-item text-truncate"> <a href="/doc/7.1/reference/index.html" class="ui-link-muted">Reference</a> </li> <li class="breadcrumb-item text-truncate active" aria-current="page"> Configuring in the Kernel </li> </ol> </div> </nav> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"\/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@id":"\/doc\/7.1\/index.html","name":"Documentation"}},{"@type":"ListItem","position":3,"item":{"@id":"\/doc\/7.1\/reference\/index.html","name":"Reference"}},{"@type":"ListItem","position":4,"item":{"@id":"\/doc\/7.1\/reference\/configuration\/kernel.html","name":"Configuring in the Kernel"}}]}</script> <main id="main-content" class="ui-page-main-content "> <div class="ui-page-container ui-page-container-wide"> <div class="ui-page-grid-content-left-sidebar-right-sidebar"> <aside class="sidebar sidebar-left"> <div class="ui-sidebar-content-sticky"> <div class="doc-sidebar-search mt-2 mb-3"> <button type="button" class="form-search-input-button d-flex flex-fill align-items-center flex-nowrap w-100 rounded-5 ui-border-primary ui-text-muted ui-text-sm px-2 py-1 ui-hover-outline-link ui-cursor-pointer"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="me-2"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6"></path></svg> Search Symfony Docs </button> </div> <div class="doc-action doc-alternative-selector branch-selector"> <span class="label">Version:</span> <select class="form-select ui-text-sm"> <optgroup label="Maintained Versions"> <option data-url="https://symfony.com/doc/7.3/reference/configuration/kernel.html"> 7.3 (dev) </option> <option data-url="https://symfony.com/doc/current/reference/configuration/kernel.html"> 7.2 (current) </option> <option selected data-url="https://symfony.com/doc/7.1/reference/configuration/kernel.html"> 7.1 </option> <option data-url="https://symfony.com/doc/6.4/reference/configuration/kernel.html"> 6.4 </option> </optgroup> <optgroup label="Unmaintained Versions"> <option data-url="https://symfony.com/doc/7.0/reference/configuration/kernel.html"> 7.0 </option> <option data-url="https://symfony.com/doc/6.3/reference/configuration/kernel.html"> 6.3 </option> <option data-url="https://symfony.com/doc/6.2/reference/configuration/kernel.html"> 6.2 </option> <option data-url="https://symfony.com/doc/6.1/reference/configuration/kernel.html"> 6.1 </option> <option data-url="https://symfony.com/doc/6.0/reference/configuration/kernel.html"> 6.0 </option> <option data-url="https://symfony.com/doc/5.x/reference/configuration/kernel.html"> 5.x </option> <option data-url="https://symfony.com/doc/4.x/reference/configuration/kernel.html"> 4.x </option> <option data-url="https://symfony.com/doc/3.x/reference/configuration/kernel.html"> 3.x </option> <option data-url="https://symfony.com/doc/2.x/reference/configuration/kernel.html"> 2.x </option> </optgroup> </select> </div> <div class="doc-sidebar-menu"> <div class="toctree-wrapper toctree-programmatic toctree-size-xl"> <p class="toctree-title">Table of Contents</p> <ul class="toctree toctree-level-1 toctree-length-24"> <li> <a href="#kernel-build-dir">kernel.build_dir</a> </li> <li> <a href="#kernel-bundles">kernel.bundles</a> </li> <li> <a href="#kernel-bundles-metadata">kernel.bundles_metadata</a> </li> <li> <a href="#kernel-cache-dir">kernel.cache_dir</a> </li> <li> <a href="#kernel-charset">kernel.charset</a> </li> <li> <a href="#kernel-container-build-time">kernel.container_build_time</a> </li> <li> <a href="#kernel-container-class">kernel.container_class</a> </li> <li> <a href="#kernel-debug">kernel.debug</a> </li> <li> <a href="#kernel-default-locale">kernel.default_locale</a> </li> <li> <a href="#kernel-enabled-locales">kernel.enabled_locales</a> </li> <li> <a href="#kernel-environment">kernel.environment</a> </li> <li> <a href="#kernel-error-controller">kernel.error_controller</a> </li> <li> <a href="#kernel-http-method-override">kernel.http_method_override</a> </li> <li> <a href="#kernel-logs-dir">kernel.logs_dir</a> </li> <li> <a href="#kernel-project-dir">kernel.project_dir</a> </li> <li> <a href="#kernel-runtime-environment">kernel.runtime_environment</a> </li> <li> <a href="#kernel-runtime-mode">kernel.runtime_mode</a> </li> <li> <a href="#kernel-runtime-mode-web">kernel.runtime_mode.web</a> </li> <li> <a href="#kernel-runtime-mode-cli">kernel.runtime_mode.cli</a> </li> <li> <a href="#kernel-runtime-mode-worker">kernel.runtime_mode.worker</a> </li> <li> <a href="#kernel-secret">kernel.secret</a> </li> <li> <a href="#kernel-trust-x-sendfile-type-header">kernel.trust_x_sendfile_type_header</a> </li> <li> <a href="#kernel-trusted-hosts">kernel.trusted_hosts</a> </li> <li> <a href="#kernel-trusted-proxies">kernel.trusted_proxies</a> </li> </ul> </div> </div> </div> </aside> <article class="content" lang="en"> <div class="ui-heading"> <h1 id="configuring-in-the-kernel" class="ui-heading-title"> Configuring in the Kernel </h1> </div> <a class="doc-action content-edit ui-link-muted mb-2" href="https://github.com/symfony/symfony-docs/edit/7.1/reference/configuration/kernel.rst"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" height="18" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z" /> </svg> Edit this page </a> <div class="ui-prose"> <div class="section"> <p>Symfony applications define a kernel class (which is located by default at <code translate="no" class="notranslate">src/Kernel.php</code>) that includes several configurable options. This article explains how to configure those options and shows the list of container parameters created by Symfony based on that configuration.</p> <span id="configuration-kernel-build-directory"></span> <div class="section"> <h2 id="kernel-build-dir"><a class="headerlink" href="#kernel-build-dir" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.build_dir</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">$this->getCacheDir()</code></p> <p>This parameter stores the absolute path of a build directory of your Symfony application. This directory can be used to separate read-only cache (i.e. the compiled container) from read-write cache (i.e. <a href="../../cache.html" class="reference internal">cache pools</a>). Specify a non-default value when the application is deployed in a read-only filesystem like a Docker container or AWS Lambda.</p> <p>This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getBuildDir" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getBuildDir()" rel="external noopener noreferrer" target="_blank">getBuildDir()</a> method of the kernel class, which you can override to return a different value.</p> <p>You can also change the build directory by defining an environment variable named <code translate="no" class="notranslate">APP_BUILD_DIR</code> whose value is the absolute path of the build folder.</p> </div> <div class="section"> <h2 id="kernel-bundles"><a class="headerlink" href="#kernel-bundles" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.bundles</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">array</code> <strong>default</strong>: <code translate="no" class="notranslate">[]</code></p> <p>This parameter stores the list of <a href="../../bundles.html" class="reference internal">bundles</a> registered in the application and the FQCN of their main bundle class:</p> <div translate="no" data-loc="5" class="notranslate codeblock codeblock-length-sm codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5</pre> <pre class="codeblock-code"><code>[ <span class="hljs-string">'FrameworkBundle'</span> => <span class="hljs-string">'Symfony\Bundle\FrameworkBundle\FrameworkBundle'</span>, <span class="hljs-string">'TwigBundle'</span> => <span class="hljs-string">'Symfony\Bundle\TwigBundle\TwigBundle'</span>, <span class="hljs-comment">// ...</span> ]</code></pre> </div> </div> <p>This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getBundles" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getBundles()" rel="external noopener noreferrer" target="_blank">getBundles()</a> method of the kernel class.</p> </div> <div class="section"> <h2 id="kernel-bundles-metadata"><a class="headerlink" href="#kernel-bundles-metadata" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.bundles_metadata</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">array</code> <strong>default</strong>: <code translate="no" class="notranslate">[]</code></p> <p>This parameter stores the list of <a href="../../bundles.html" class="reference internal">bundles</a> registered in the application and some metadata about them:</p> <div translate="no" data-loc="11" class="notranslate codeblock codeblock-length-md codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5 6 7 8 9 10 11</pre> <pre class="codeblock-code"><code>[ <span class="hljs-string">'FrameworkBundle'</span> => [ <span class="hljs-string">'path'</span> => <span class="hljs-string">'/<path-to-your-project>/vendor/symfony/framework-bundle'</span>, <span class="hljs-string">'namespace'</span> => <span class="hljs-string">'Symfony\Bundle\FrameworkBundle'</span>, ], <span class="hljs-string">'TwigBundle'</span> => [ <span class="hljs-string">'path'</span> => <span class="hljs-string">'/<path-to-your-project>/vendor/symfony/twig-bundle'</span>, <span class="hljs-string">'namespace'</span> => <span class="hljs-string">'Symfony\Bundle\TwigBundle'</span>, ], <span class="hljs-comment">// ...</span> ]</code></pre> </div> </div> <p>This value is not exposed via any method of the kernel class, so you can only obtain it via the container parameter.</p> </div> <div class="section"> <h2 id="kernel-cache-dir"><a class="headerlink" href="#kernel-cache-dir" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.cache_dir</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">$this->getProjectDir()/var/cache/$this->environment</code></p> <p>This parameter stores the absolute path of the cache directory of your Symfony application. The default value is generated by Symfony based on the current <a href="../../configuration.html#configuration-environments" class="reference internal">configuration environment</a>. Your application can write data to this path at runtime.</p> <p>This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getCacheDir" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getCacheDir()" rel="external noopener noreferrer" target="_blank">getCacheDir()</a> method of the kernel class, which you can override to return a different value.</p> <span id="configuration-kernel-charset"></span> </div> <div class="section"> <h2 id="kernel-charset"><a class="headerlink" href="#kernel-charset" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.charset</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">UTF-8</code></p> <p>This parameter stores the type of charset or <a href="https://en.wikipedia.org/wiki/Character_encoding" class="reference external" rel="external noopener noreferrer" target="_blank">character encoding</a> that is used in the application. This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getCharset" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getCharset()" rel="external noopener noreferrer" target="_blank">getCharset()</a> method of the kernel class, which you can override to return a different value:</p> <div translate="no" data-loc="13" class="notranslate codeblock codeblock-length-md codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5 6 7 8 9 10 11 12 13</pre> <pre class="codeblock-code"><code><span class="hljs-comment">// src/Kernel.php</span> <span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">Symfony</span>\<span class="hljs-title">Component</span>\<span class="hljs-title">HttpKernel</span>\<span class="hljs-title">Kernel</span> <span class="hljs-title">as</span> <span class="hljs-title">BaseKernel</span>; <span class="hljs-comment">// ...</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Kernel</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">BaseKernel</span> </span>{ <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getCharset</span><span class="hljs-params">()</span>: <span class="hljs-title">string</span> </span>{ <span class="hljs-keyword">return</span> <span class="hljs-string">'ISO-8859-1'</span>; } }</code></pre> </div> </div> </div> <div class="section"> <h2 id="kernel-container-build-time"><a class="headerlink" href="#kernel-container-build-time" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.container_build_time</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: the result of executing <code translate="no" class="notranslate">time()</code></p> <p>Symfony follows the <a href="https://en.wikipedia.org/wiki/Reproducible_builds" class="reference external" rel="external noopener noreferrer" target="_blank">reproducible builds</a> philosophy, which ensures that the result of compiling the exact same source code doesn't produce different results. This helps checking that a given binary or executable code was compiled from some trusted source code.</p> <p>In practice, the compiled <a href="../../service_container.html" class="reference internal">service container</a> of your application will always be the same if you don't change its source code. This is exposed via these container parameters:</p> <ul> <li><code translate="no" class="notranslate">container.build_hash</code>, a hash of the contents of all your source files;</li> <li><code translate="no" class="notranslate">container.build_time</code>, a timestamp of the moment when the container was built (the result of executing PHP's <a href="https://secure.php.net/manual/en/function.time.php" class="reference external" title="time" rel="external noopener noreferrer" target="_blank">time</a> function);</li> <li><code translate="no" class="notranslate">container.build_id</code>, the result of merging the two previous parameters and encoding the result using CRC32.</li> </ul> <p>Since the <code translate="no" class="notranslate">container.build_time</code> value will change every time you compile the application, the build will not be strictly reproducible. If you care about this, the solution is to use another container parameter called <code translate="no" class="notranslate">kernel.container_build_time</code> and set it to a non-changing build time to achieve a strict reproducible build:</p> <div class="configuration-block"> <div role="tablist" aria-label="Configuration formats" class="configuration-tabs configuration-tabs-length-3"> <button role="tab" type="button" data-language="yaml" aria-controls="configuration-block-tabpanel-9308a6df8e361dcfd8df22e1b0840bbd897b041e" aria-selected="true" data-active="true"> <span>YAML</span> </button> <button role="tab" type="button" data-language="xml" aria-controls="configuration-block-tabpanel-626e86b46942ad709938159c27135785c1df1c61" aria-selected="false" tabindex="-1"> <span>XML</span> </button> <button role="tab" type="button" data-language="php" aria-controls="configuration-block-tabpanel-eed86f1d226dabfb3ac41088e5d8d7df9d3bf3a1" aria-selected="false" tabindex="-1"> <span>PHP</span> </button> </div> <div role="tabpanel" id="configuration-block-tabpanel-9308a6df8e361dcfd8df22e1b0840bbd897b041e" aria-label="YAML" class="configuration-codeblock" data-language="yaml" style> <div translate="no" data-loc="4" class="notranslate codeblock codeblock-length-sm codeblock-yaml"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4</pre> <pre class="codeblock-code"><code><span class="hljs-comment"># config/services.yaml</span> <span class="hljs-attr">parameters:</span> <span class="hljs-comment"># ...</span> <span class="hljs-attr">kernel.container_build_time:</span> <span class="hljs-string">'1234567890'</span></code></pre> </div> </div> </div> <div role="tabpanel" id="configuration-block-tabpanel-626e86b46942ad709938159c27135785c1df1c61" aria-label="XML" class="configuration-codeblock" data-language="xml" style="display: none"> <div translate="no" data-loc="11" class="notranslate codeblock codeblock-length-md codeblock-xml"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5 6 7 8 9 10 11</pre> <pre class="codeblock-code"><code><span class="hljs-comment"><!-- config/services.xml --></span> <span class="hljs-meta"><?xml version="1.0" encoding="UTF-8" ?></span> <span class="hljs-tag"><<span class="hljs-name">container</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">"http://symfony.com/schema/dic/services"</span> <span class="hljs-attr">xmlns:xsi</span>=<span class="hljs-string">"http://www.w3.org/2001/XMLSchema-instance"</span> <span class="hljs-attr">xsi:schemaLocation</span>=<span class="hljs-string">"http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd"</span>></span> <span class="hljs-tag"><<span class="hljs-name">parameters</span>></span> <span class="hljs-comment"><!-- ... --></span> <span class="hljs-tag"><<span class="hljs-name">parameter</span> <span class="hljs-attr">key</span>=<span class="hljs-string">"kernel.container_build_time"</span>></span>1234567890<span class="hljs-tag"></<span class="hljs-name">parameter</span>></span> <span class="hljs-tag"></<span class="hljs-name">parameters</span>></span> <span class="hljs-tag"></<span class="hljs-name">container</span>></span></code></pre> </div> </div> </div> <div role="tabpanel" id="configuration-block-tabpanel-eed86f1d226dabfb3ac41088e5d8d7df9d3bf3a1" aria-label="PHP" class="configuration-codeblock" data-language="php" style="display: none"> <div translate="no" data-loc="4" class="notranslate codeblock codeblock-length-sm codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4</pre> <pre class="codeblock-code"><code><span class="hljs-comment">// config/services.php</span> <span class="hljs-comment">// ...</span> <span class="hljs-variable"><span class="hljs-variable-other-marker">$</span>container</span>-><span class="hljs-title invoke__">setParameter</span>(<span class="hljs-string">'kernel.container_build_time'</span>, <span class="hljs-string">'1234567890'</span>);</code></pre> </div> </div> </div> </div> </div> <div class="section"> <h2 id="kernel-container-class"><a class="headerlink" href="#kernel-container-class" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.container_class</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: (see explanation below)</p> <p>This parameter stores a unique identifier for the container class. In practice, this is only important to ensure that each kernel has a unique identifier when <a href="../../configuration/multiple_kernels.html" class="reference internal">using applications with multiple kernels</a>.</p> <p>The default value is generated by Symfony based on the current <a href="../../configuration.html#configuration-environments" class="reference internal">configuration environment</a> and the <a href="../../configuration/front_controllers_and_kernel.html#debug-mode" class="reference internal">debug mode</a>. For example, if your application kernel is defined in the <code translate="no" class="notranslate">App</code> namespace, runs in the <code translate="no" class="notranslate">dev</code> environment and the <code translate="no" class="notranslate">debug</code> mode is enabled, the value of this parameter is <code translate="no" class="notranslate">App_KernelDevDebugContainer</code>.</p> <p>This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getContainerClass" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getContainerClass()" rel="external noopener noreferrer" target="_blank">getContainerClass()</a> method of the kernel class, which you can override to return a different value:</p> <div translate="no" data-loc="13" class="notranslate codeblock codeblock-length-md codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5 6 7 8 9 10 11 12 13</pre> <pre class="codeblock-code"><code><span class="hljs-comment">// src/Kernel.php</span> <span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">Symfony</span>\<span class="hljs-title">Component</span>\<span class="hljs-title">HttpKernel</span>\<span class="hljs-title">Kernel</span> <span class="hljs-title">as</span> <span class="hljs-title">BaseKernel</span>; <span class="hljs-comment">// ...</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Kernel</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">BaseKernel</span> </span>{ <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getContainerClass</span><span class="hljs-params">()</span>: <span class="hljs-title">string</span> </span>{ <span class="hljs-keyword">return</span> <span class="hljs-title invoke__">sprintf</span>(<span class="hljs-string">'AcmeKernel%s'</span>, <span class="hljs-title invoke__">random_int</span>(<span class="hljs-number">10</span>_000, <span class="hljs-number">99</span>_999)); } }</code></pre> </div> </div> </div> <div class="section"> <h2 id="kernel-debug"><a class="headerlink" href="#kernel-debug" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.debug</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">boolean</code> <strong>default</strong>: (the value is passed as an argument when booting the kernel)</p> <p>This parameter stores the value of the current <a href="../../configuration/front_controllers_and_kernel.html#debug-mode" class="reference internal">debug mode</a> used by the application.</p> </div> <div class="section"> <h2 id="kernel-default-locale"><a class="headerlink" href="#kernel-default-locale" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.default_locale</code></a></h2> <p>This parameter stores the value of <a href="framework.html#config-framework-default_locale" class="reference internal">the framework.default_locale parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-enabled-locales"><a class="headerlink" href="#kernel-enabled-locales" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.enabled_locales</code></a></h2> <p>This parameter stores the value of <a href="framework.html#reference-translator-enabled-locales" class="reference internal">the framework.enabled_locales parameter</a>.</p> <span id="configuration-kernel-environment"></span> </div> <div class="section"> <h2 id="kernel-environment"><a class="headerlink" href="#kernel-environment" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.environment</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: (the value is passed as an argument when booting the kernel)</p> <p>This parameter stores the name of the current <a href="../../configuration.html#configuration-environments" class="reference internal">configuration environment</a> used by the application.</p> <p>This value defines the configuration options used to run the application, whereas the <a href="kernel.html#configuration-kernel-runtime-environment" class="reference internal">kernel.runtime_environment</a> option defines the place where the application is deployed. This allows for example to run an application with the <code translate="no" class="notranslate">prod</code> config (<code translate="no" class="notranslate">kernel.environment</code>) in different scenarios like <code translate="no" class="notranslate">staging</code> or <code translate="no" class="notranslate">production</code> (<code translate="no" class="notranslate">kernel.runtime_environment</code>).</p> </div> <div class="section"> <h2 id="kernel-error-controller"><a class="headerlink" href="#kernel-error-controller" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.error_controller</code></a></h2> <p>This parameter stores the value of <a href="framework.html#config-framework-error_controller" class="reference internal">the framework.error_controller parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-http-method-override"><a class="headerlink" href="#kernel-http-method-override" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.http_method_override</code></a></h2> <p>This parameter stores the value of <a href="framework.html#configuration-framework-http_method_override" class="reference internal">the framework.http_method_override parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-logs-dir"><a class="headerlink" href="#kernel-logs-dir" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.logs_dir</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">$this->getProjectDir()/var/log</code></p> <p>This parameter stores the absolute path of the log directory of your Symfony application. It's calculated automatically based on the current <a href="../../configuration.html#configuration-environments" class="reference internal">configuration environment</a>.</p> <p>This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getLogDir" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getLogDir()" rel="external noopener noreferrer" target="_blank">getLogDir()</a> method of the kernel class, which you can override to return a different value.</p> <span id="configuration-kernel-project-directory"></span> </div> <div class="section"> <h2 id="kernel-project-dir"><a class="headerlink" href="#kernel-project-dir" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.project_dir</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: the directory of the project's <code translate="no" class="notranslate">composer.json</code></p> <p>This parameter stores the absolute path of the root directory of your Symfony application, which is used by applications to perform operations with file paths relative to the project's root directory.</p> <p>By default, its value is calculated automatically as the directory where the main <code translate="no" class="notranslate">composer.json</code> file is stored. This value is also exposed via the <a href="https://github.com/symfony/symfony/blob/7.1/src/Symfony/Component/HttpKernel/Kernel.php#:~:text=function%20getProjectDir" class="reference external" title="Symfony\Component\HttpKernel\Kernel::getProjectDir()" rel="external noopener noreferrer" target="_blank">getProjectDir()</a> method of the kernel class.</p> <p>If you don't use Composer, or have moved the <code translate="no" class="notranslate">composer.json</code> file location or have deleted it entirely (for example in the production servers), override the <code translate="no" class="notranslate">getProjectDir()</code> method to return a different value:</p> <div translate="no" data-loc="17" class="notranslate codeblock codeblock-length-md codeblock-php"> <div class="codeblock-scroll"> <pre class="codeblock-lines">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17</pre> <pre class="codeblock-code"><code><span class="hljs-comment">// src/Kernel.php</span> <span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">Symfony</span>\<span class="hljs-title">Component</span>\<span class="hljs-title">HttpKernel</span>\<span class="hljs-title">Kernel</span> <span class="hljs-title">as</span> <span class="hljs-title">BaseKernel</span>; <span class="hljs-comment">// ...</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Kernel</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">BaseKernel</span> </span>{ <span class="hljs-comment">// ...</span> <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getProjectDir</span><span class="hljs-params">()</span>: <span class="hljs-title">string</span> </span>{ <span class="hljs-comment">// when defining a hardcoded string, don't add the trailing slash to the path</span> <span class="hljs-comment">// e.g. '/home/user/my_project', '/app', '/var/www/example.com'</span> <span class="hljs-keyword">return</span> \<span class="hljs-title invoke__">dirname</span>(<span class="hljs-keyword">__DIR__</span>); } }</code></pre> </div> </div> <span id="configuration-kernel-runtime-environment"></span> </div> <div class="section"> <h2 id="kernel-runtime-environment"><a class="headerlink" href="#kernel-runtime-environment" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.runtime_environment</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(default:kernel.environment:APP_RUNTIME_ENV)%</code></p> <p>This parameter stores the name of the current <a href="../../components/runtime.html" class="reference internal">runtime environment</a> used by the application.</p> <p>This value defines the place where the application is deployed, whereas the <a href="kernel.html#configuration-kernel-environment" class="reference internal">kernel.environment</a> option defines the configuration options used to run the application. This allows for example to run an application with the <code translate="no" class="notranslate">prod</code> config (<code translate="no" class="notranslate">kernel.environment</code>) in different scenarios like <code translate="no" class="notranslate">staging</code> or <code translate="no" class="notranslate">production</code> (<code translate="no" class="notranslate">kernel.runtime_environment</code>).</p> </div> <div class="section"> <h2 id="kernel-runtime-mode"><a class="headerlink" href="#kernel-runtime-mode" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.runtime_mode</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(query_string:default:container.runtime_mode:APP_RUNTIME_MODE)%</code></p> <p>This parameter stores a query string of the current runtime mode used by the application. For example, the query string looks like <code translate="no" class="notranslate">web=1&worker=0</code> when the application is running in web mode and <code translate="no" class="notranslate">web=1&worker=1</code> when running in a long-running web server. This parameter can be set by using the <code translate="no" class="notranslate">APP_RUNTIME_MODE</code> env var.</p> </div> <div class="section"> <h2 id="kernel-runtime-mode-web"><a class="headerlink" href="#kernel-runtime-mode-web" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.runtime_mode.web</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">boolean</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(bool:default::key:web:default:kernel.runtime_mode:)%</code></p> <p>Whether the application is running in a web environment.</p> </div> <div class="section"> <h2 id="kernel-runtime-mode-cli"><a class="headerlink" href="#kernel-runtime-mode-cli" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.runtime_mode.cli</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">boolean</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(not:default:kernel.runtime_mode.web:)%</code></p> <p>Whether the application is running in a CLI environment. By default, this value is the opposite of the <code translate="no" class="notranslate">kernel.runtime_mode.web</code> parameter.</p> </div> <div class="section"> <h2 id="kernel-runtime-mode-worker"><a class="headerlink" href="#kernel-runtime-mode-worker" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.runtime_mode.worker</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">boolean</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(bool:default::key:worker:default:kernel.runtime_mode:)%</code></p> <p>Whether the application is running in a worker/long-running environment. Not all web servers support it, and you have to use a long-running web server like <a href="https://frankenphp.dev" class="reference external" rel="external noopener noreferrer" target="_blank">FrankenPHP</a>.</p> </div> <div class="section"> <h2 id="kernel-secret"><a class="headerlink" href="#kernel-secret" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.secret</code></a></h2> <p><strong>type</strong>: <code translate="no" class="notranslate">string</code> <strong>default</strong>: <code translate="no" class="notranslate">%env(APP_SECRET)%</code></p> <p>This parameter stores the value of <a href="framework.html#configuration-framework-secret" class="reference internal">the framework.secret parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-trust-x-sendfile-type-header"><a class="headerlink" href="#kernel-trust-x-sendfile-type-header" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.trust_x_sendfile_type_header</code></a></h2> <p>This parameter stores the value of <a href="framework.html#configuration-framework-http_method_override" class="reference internal">the framework.trust_x_sendfile_type_header parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-trusted-hosts"><a class="headerlink" href="#kernel-trusted-hosts" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.trusted_hosts</code></a></h2> <p>This parameter stores the value of <a href="framework.html#configuration-framework-trusted-hosts" class="reference internal">the framework.trusted_hosts parameter</a>.</p> </div> <div class="section"> <h2 id="kernel-trusted-proxies"><a class="headerlink" href="#kernel-trusted-proxies" title="Permalink to this headline"><code translate="no" class="notranslate">kernel.trusted_proxies</code></a></h2> <p>This parameter stores the value of <a href="framework.html#reference-framework-trusted-proxies" class="reference internal">the framework.trusted_proxies parameter</a>.</p> </div> </div> </div> <div class="ui-text-sm ui-text-muted mt-4"> This work, including the code samples, is licensed under a <a class="ui-link-muted" rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons BY-SA 3.0</a> license. </div> <div id="doc-mobile-shortcuts-bar"> <div> <details class="toc"> <summary> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 6h11M9 12h11M9 18h11M5 6v.01M5 12v.01M5 18v.01"></path></svg> TOC </summary> <ul class="toc-contents toctree is-empty"></ul> </details> </div> <div> <button type="button" class="form-search-input-button d-flex flex-fill align-items-center flex-nowrap w-100 shadow-none"> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6"></path></svg> Search </button> </div> <div> <details class="version"> <summary> <svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 7a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zM7 7v10M4 8v8"></path></svg> Version </summary> <div class="version-contents is-empty"></div> </details> </div> </div> </article> <aside class="sidebar sidebar-right"> <div class="ui-sidebar-content-sticky"> <div class="mb-3 px-1"> <p class="ui-text-sm text-center mb-1"> <strong>Symfony 7.1</strong> is <a href="/backers">backed</a> by </p> <div class="doc-backer doc-backer-release"> <div class="backer_logo"><a class="link stretched-link" href="http://getrector.com/" target="_blank" rel="noopener"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 189.3 46.4" class="backer-logo-rector"><style> .dark-theme .backer-logo-rector path.logo-rector-word { fill: #fff; } </style><linearGradient id="a"><stop offset="0" stop-color="#d08a70"/><stop offset="1" stop-color="#955848"/></linearGradient><radialGradient xlink:href="#a" id="h" cx="0" cy="0" r="1" gradientTransform="matrix(56.96474 0 0 -76.9024 469 256)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#a" id="i" cx="0" cy="0" r="1" gradientTransform="matrix(69.1537 0 0 -107.18825 468.333 88)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient id="j" cx="0" cy="0" r="1" gradientTransform="matrix(12.66626 0 0 -12.66626 445.667 148.34)" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#f9ea39"/><stop offset="1" stop-color="#945515"/></radialGradient><linearGradient id="b"><stop offset="0" stop-color="#d08a70"/><stop offset="1" stop-color="#bf3818"/></linearGradient><radialGradient xlink:href="#b" id="l" cx="0" cy="0" r="1" gradientTransform="matrix(0 -17.81527 -35.63054 0 98.833 7.666)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="m" cx="0" cy="0" r="1" gradientTransform="matrix(0 -16.6966 -33.3932 0 151.667 7.666)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="n" cx="0" cy="0" r="1" gradientTransform="matrix(0 -11.70201 -23.40402 0 89.501 30.006)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="o" cx="0" cy="0" r="1" gradientTransform="matrix(0 -6.8836 -13.7672 0 80.834 52.172)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="q" cx="0" cy="0" r="1" gradientTransform="matrix(0 -11.9638 -23.9276 0 236.417 7.666)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="r" cx="0" cy="0" r="1" gradientTransform="matrix(0 -14.05142 -28.10284 0 197.667 7.666)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="s" cx="0" cy="0" r="1" gradientTransform="matrix(0 -17.81527 -35.63054 0 134.667 30.34)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="t" cx="0" cy="0" r="1" gradientTransform="matrix(0 -16.52167 -33.04334 0 114.071 52.34)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="u" cx="0" cy="0" r="1" gradientTransform="matrix(0 -11.29369 -22.98834 0 88.917 72.174)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><radialGradient xlink:href="#b" id="v" cx="0" cy="0" r="1" gradientTransform="matrix(0 -9.69276 -19.947 0 86.506 92.34)" gradientUnits="userSpaceOnUse" spreadMethod="pad"/><clipPath id="c"><path d="M0 1052h1041V0H0z"/></clipPath><clipPath id="e"><path d="M0 1052h1041V0H0z"/></clipPath><clipPath id="g"><path d="M0 1052h1041V0H0z"/></clipPath><clipPath id="k"><path d="M0 1052h1041V0H0z"/></clipPath><clipPath id="p"><path d="M0 1052h1041V0H0z"/></clipPath><clipPath id="w"><path d="M0 1052h1041V0H0z"/></clipPath><mask id="d" width="1" height="1" x="0" y="0" maskUnits="userSpaceOnUse"><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAADbCAAAAAD8Vhi/AAAAAXNCSVQI5gpbmQAABJhJREFUaIHtm9uS2zgOhvEDJHWw3Yck+wD7/q+W6XZs60QSwF44k+3MtLpr53KLX5VvJPErAIYoXEj4t5lv21LoHwMQEZH/c0Oj0Wg0Go1Go9FoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqPRaPx/wsQ7Z8Lni8FkAAAntnde2cZn6wl8v4qhRE5OpP+bQgAQmEBwclKYk/8ey4cKZgbAxMx0T6ISFXJXf/MS+ge1EGIWMJgFAQQz8lh/xkL6y7EfBYQCc2DhyCIMruRatVKpFdX8V0X2ogAzmBNSkJREJIDNtWjdKgtrUHP7RMEQiMQQ05C6jkMAyHKxbVtz4WyobOUjBQAWhBSHvh+7vku9MJFuZdvWZVlYMtyJbV8BIQ4IqRsO43E8DkPfcyCrZVvn6xxjXDhTQaju+4lARFJ3OB2ODw+n4zh0Qcjrti63wzVNgRxEWpnqvoIRUnc4PpyeH58eTqe+i0JW8zrfLufxNYDYlUxUdEfBAglxOJwev3z5+vx4OvZdYHjN23w9DL0ATmrZ3HW3FiQxdsN4fPr67duXx9PYJwGolryMXRIiqqpuqqxs7yuEJYRhPD4+P//r29PjcUiBATfNfRcjyLSUXDcRB3YUxEFiPx6fnr8+Pz89jF0AE9w9psjslvOyLmv0Cjb4+4kEkZT64+nh8fHh4ZASA0TkzgB5ycsyLdNaKjP7Ti2EOKQuDcfT6XQcusiMe4kswTVv83Tp+m5hqSDWndaSmOIwDuNh6KMI/rwZ2YJ14zKOfdenKMLOjp0NkUMIXdenrovxvwYiQELquq7vQgAzGLSzpzIzJLCkEN4KiAAWSTGmKMIEwMDvK4B7ewnzX68AM7EIM1iciMh2EoGZE9zx969s3O8/un+B4zuJuMLNVGutZr+fMndTVf15fLcWruY1l1Jy0d+2a3fXkreSS9Vancjd31WYudZStmXdcq5vJO5Wy7Zty5Jrra5Ge63l5prLOq/TvPSRQbh3J5nXsq7TPC3Lurm6qe/dI6S15nW+Hq5DDEyJAZCTW93m6Xq7TnPeSi7m5k7ynkAYBIkcUxC5ryZzMy15uf14/f7Hy+uPy7zUWn1XAefAHIQFANzNTauWbZ2u55c/Xr6fX8+3daumaju1UIhmTlOM4qRlPfQpEFxznqcfr99fzufLtBVTJd8tJ1XUuoDhpusyj2MXwFbzNt/O55fXl5frsm7V1AHfKaehAORw17Iut8PYBYHVbZ1vl8v5/HqZt1yqqu9GYWCqALGr1nW+HLuUAt0V0+1yuc7LmmvR+5TwfhRemUDuppqnqR/6FIVM87rO83xd1jnnrOb3Jt9LBK7m5rWs/dx1XRQhU83rtmzTtpVSVJU+eCASkZFzBWqp29KnEIKQVa1bziXnejf87Pvd+UIgTBKihJACiwiZei21Fqu1uJvpZwqCMLFIEBZhFocSqVqtZmqu/mu++GjWYhaCsDAEBCJ3dTM1c3s7sX00dxrByWH05/5oRm5m7r/NjR8PjRCi+3KwE5mzm7sZ3m5Dn82dRAwQyMXp/ic6/WUE/lxBBGIyAu6Ov+3H/wG5LNpDfU+nuAAAAABJRU5ErkJggg==" width="1" height="1" image-rendering="optimizeSpeed" preserveAspectRatio="none"/></mask><mask id="f" width="1" height="1" x="0" y="0" maskUnits="userSpaceOnUse"><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAADbCAAAAAD8Vhi/AAAAAXNCSVQI5gpbmQAABJhJREFUaIHtm9uS2zgOhvEDJHWw3Yck+wD7/q+W6XZs60QSwF44k+3MtLpr53KLX5VvJPErAIYoXEj4t5lv21LoHwMQEZH/c0Oj0Wg0Go1Go9FoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqPRaPx/wsQ7Z8Lni8FkAAAntnde2cZn6wl8v4qhRE5OpP+bQgAQmEBwclKYk/8ey4cKZgbAxMx0T6ISFXJXf/MS+ge1EGIWMJgFAQQz8lh/xkL6y7EfBYQCc2DhyCIMruRatVKpFdX8V0X2ogAzmBNSkJREJIDNtWjdKgtrUHP7RMEQiMQQ05C6jkMAyHKxbVtz4WyobOUjBQAWhBSHvh+7vku9MJFuZdvWZVlYMtyJbV8BIQ4IqRsO43E8DkPfcyCrZVvn6xxjXDhTQaju+4lARFJ3OB2ODw+n4zh0Qcjrti63wzVNgRxEWpnqvoIRUnc4PpyeH58eTqe+i0JW8zrfLufxNYDYlUxUdEfBAglxOJwev3z5+vx4OvZdYHjN23w9DL0ATmrZ3HW3FiQxdsN4fPr67duXx9PYJwGolryMXRIiqqpuqqxs7yuEJYRhPD4+P//r29PjcUiBATfNfRcjyLSUXDcRB3YUxEFiPx6fnr8+Pz89jF0AE9w9psjslvOyLmv0Cjb4+4kEkZT64+nh8fHh4ZASA0TkzgB5ycsyLdNaKjP7Ti2EOKQuDcfT6XQcusiMe4kswTVv83Tp+m5hqSDWndaSmOIwDuNh6KMI/rwZ2YJ14zKOfdenKMLOjp0NkUMIXdenrovxvwYiQELquq7vQgAzGLSzpzIzJLCkEN4KiAAWSTGmKMIEwMDvK4B7ewnzX68AM7EIM1iciMh2EoGZE9zx969s3O8/un+B4zuJuMLNVGutZr+fMndTVf15fLcWruY1l1Jy0d+2a3fXkreSS9Vancjd31WYudZStmXdcq5vJO5Wy7Zty5Jrra5Ge63l5prLOq/TvPSRQbh3J5nXsq7TPC3Lurm6qe/dI6S15nW+Hq5DDEyJAZCTW93m6Xq7TnPeSi7m5k7ynkAYBIkcUxC5ryZzMy15uf14/f7Hy+uPy7zUWn1XAefAHIQFANzNTauWbZ2u55c/Xr6fX8+3daumaju1UIhmTlOM4qRlPfQpEFxznqcfr99fzufLtBVTJd8tJ1XUuoDhpusyj2MXwFbzNt/O55fXl5frsm7V1AHfKaehAORw17Iut8PYBYHVbZ1vl8v5/HqZt1yqqu9GYWCqALGr1nW+HLuUAt0V0+1yuc7LmmvR+5TwfhRemUDuppqnqR/6FIVM87rO83xd1jnnrOb3Jt9LBK7m5rWs/dx1XRQhU83rtmzTtpVSVJU+eCASkZFzBWqp29KnEIKQVa1bziXnejf87Pvd+UIgTBKihJACiwiZei21Fqu1uJvpZwqCMLFIEBZhFocSqVqtZmqu/mu++GjWYhaCsDAEBCJ3dTM1c3s7sX00dxrByWH05/5oRm5m7r/NjR8PjRCi+3KwE5mzm7sZ3m5Dn82dRAwQyMXp/ic6/WUE/lxBBGIyAu6Ov+3H/wG5LNpDfU+nuAAAAABJRU5ErkJggg==" width="1" height="1" image-rendering="optimizeSpeed" preserveAspectRatio="none"/></mask><mask id="x" width="1" height="1" x="0" y="0" maskUnits="userSpaceOnUse"><image xlink:href="data:image/png;base64,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" width="1" height="1" image-rendering="optimizeSpeed" preserveAspectRatio="none"/></mask><path class="logo-rector-word" d="M18 22.7q0 5.3-4.2 6.8l5.6 8h-6.1l-5-7.1H5v7H0v-22h8.4q5.2 0 7.4 1.7 2.2 1.8 2.2 5.7zM8.6 26q2.5 0 3.4-.8 1-.8 1-2.6t-1-2.5q-1-.7-3.3-.7H5V26zM39 15.3v4.4H28v4.6h10v4.2H28v4.6h11.4v4.4H23.1V15.3zM54 33q3.6 0 5.9-2.9l3.2 3.3q-3.8 4.2-9 4.2-5 0-8.4-3.2-3.3-3.2-3.3-8.2 0-5 3.4-8.2 3.4-3.3 8.3-3.3 5.4 0 9.1 4.1l-3 3.5q-2.4-2.9-6-2.9-2.7 0-4.7 1.9-2 1.8-2 4.9 0 3 1.9 5 2 1.8 4.6 1.8m22.5-13.5v17.9h-5v-18h-6.2v-4.2h17.5v4.3zm26.2 6.7q0-3-1.9-5.1-1.9-2.1-4.7-2.1-2.7 0-4.6 2.1-2 2-2 5t2 5.1q1.9 2 4.6 2 2.8 0 4.7-2 2-2 2-5m1.6 8.1q-3.3 3.3-8.3 3.3-4.9 0-8.2-3.3-3.4-3.3-3.4-8.2 0-4.8 3.4-8.1 3.3-3.3 8.2-3.3 5 0 8.3 3.3 3.4 3.3 3.4 8.1 0 5-3.4 8.2M130 22.7q0 5.3-4.2 6.8l5.6 8h-6.1l-5-7.1H117v7h-5v-22h8.5q5.2 0 7.4 1.7 2.2 1.8 2.2 5.7zm-9.4 3.4q2.5 0 3.4-.8 1-.8 1-2.6t-1-2.5q-1-.7-3.3-.7h-3.8v6.6z"/><path fill="#74c079" d="m166.2 31.7 4.4 14.9h14.9v-34l-19.3-11z"/><path fill="#7c4c40" d="M160.9 31.2v15.4h5.4V31.2z"/><g clip-path="url(#c)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#e3e3e3" d="M410.6 1.6c-.9 2.9-.6 4.4-.3 7.4.4 2.8.7 5-.9 7-2.1 2.8-3.2 2.2-1.6 5.6.7 1.6 1.1 1.4 1.3 3.1 0 1.2-.3 2.5-.4 3.6-.3 2.5-.7 5.4-.4 8 .8 5.7 3.5 9 1.3 15-2.1 5.8 0 10.6-.3 16.6-8 2.7-1.4 10.8-1.3 15.8 0 3.4-1.4 6-.4 9.6.7 2.7 2.1 6.7 4 8.4.4 2.3-1.5 4.2-1.6 6.6 0 2.6.5 5.5 2.2 7.4-1.6.8-3 3.6-3.3 5.2-.6 3 1.2 3.8 1.7 6 1 4.8-.9 9-.6 13.8.2 2.6 1.6 3.7 1 6.3-.5 2.4-2.5 3.7-2 6.3.4 2.3 3.1 3 3.7 4.7.8 2.3-1.5 4.2-2 6.3-.6 2-.2 3.9.6 5.8.5 1.3 3.2 1.8.4 3-.8 2.8 0 4.3 2 6.2-2.5 3.5-3.2 7-4 11-.7 3-2.5 6.6-2 9.7.4 1.9 1.5 3 1.6 5 .1 1.7-.9 3.2-1.2 4.7-1 4.4.9 4.6 2.5 8 1.5 3.1-1 5-1.9 7.7-.8 2.7.3 5.4 0 8.3-.3 2.6-2.2 4.5-1.1 7 .8 2 3.6 3 4 5 .6 1.9-1 4.9-1.6 6.6-1 3.1-.9 4.5 0 7.7 1.2 5.2-.9 10.6-.7 16.3.2 6 1.7 10.4 0 16-1.7 5.8 3.8 8.2 2.7 14-.5 2.6-1.9 4.7-2.3 7-.6 2.7.2 5.8-.4 8.3-1 4.6.2 11.3-1.7 15.7l-.6.3c1 1.5 4.4 4.3 6.3 4.3 2.6-2.9 8.3-3.3 12-2 2.4.8 3.5 3.5 6 3.7 1.9.1 3.8-1.6 5.3-2.3 7-3.4 14.4.2 21.4.7 3.2.2 6.5.2 9.7 0 1.3 0 2.7 0 4-.4.4-.2 1.7-1.9 2.5-2 2.2-.4 2 .8 3.8 1.5 1.8.7 2 .6 4 .6 3 0 6.2-.3 9.3 0 2.9.2 5.7 1 8.7.6 2.7-.3 5-1.5 7.7-1.6 4.8-.3 8.8 2.7 13.3 4v667.5L73.5 757.4 75 0h336.3l-.7 1.6"/></g><image xlink:href="data:image/png;base64,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" width="1" height="1" image-rendering="optimizeSpeed" mask="url(#d)" preserveAspectRatio="none" transform="matrix(2.92153 0 0 9.69418 161.273 31.235)"/><g clip-path="url(#e)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#b72222" fill-rule="evenodd" d="M305 1013V912c-4.6-1.8-9.5-3-13.6-5.7-4.3-2.6-7.7-6.6-11.5-10-3-2.5-5.4-6-8.8-7.6-15.3-7.3-31-13.8-46.2-21.2-7-3.4-13.5-8.3-20.3-12.4l-20.4-12.6v80.2c0 3.2-.7 6.5.1 9.5.7 2.7 2.5 5.9 4.7 7.1 1.4.8 4.7-1.6 6.9-3 1-.5 1.3-2.1 1.9-3.3l2.2.5c2.4 4.7 4.5 9.6 7.4 14 2 3.1 4.7 6.7 8 8 2.8 1.2 4.8 2.2 4.7 5.1-.3 6.5 5.1 10.1 7 15.5.1.6 1.2 1.4 1.8 1.3 4.1-.2 3.5 2.3 3.9 5.2.4 3.2 2.3 6.3 3.6 9.4 1 2.4 2.5 4.6 3.4 7 3.5 9.4 5.4 14.4 16.3 14 16.3-.6 32.6 0 48.9 0"/><path fill="#952e2e" d="m217.4 894 2 2.3c0 .2.2.3.3.4a9 9 0 0 1-2.3-2.7m17 54.3c1.6-2.3 5.7-5 5.9-7.6-1.8-.2-3.2 1.3-4.7 1.9-1.7.6-3 .7-5 .7-3.4 0-7.7.4-10.5 2.4 1-.3 1.2.3 1.7.5 1.3 2.5 1.4 4 1.6 7a19 19 0 0 1 5 2.8c2.7-.9 4.2-5.2 6-7.7m15 42.4c4.8 7.1 7.3.6 11.6-2.4 4.4-3 11.5-1 14.6 3-2.7.4-6-2.2-9-2-2.5.2-3 1.4-4.3 3.4-1.5 2.5-4.1 9.8-8.7 6.4 1.6 3.8 4.4 7 1.1 11-1.5 1.8-6 4.3-8.6 3.9-1.4-2.3-1.9-4-2.8-6.3-.8-2.3-2.8-3.5-4-5.4-1.2-2-1-5-2.5-7-1.6-2-5-2.1-6.4-4.4-1.2-1.9-.2-5.6-.1-7.6.2-5.1-1-2.6-4.3-4.6-2-1.3-1.7-4-3-6-1.4-1.8-4-3-4.7-5.4-.7-2.7 1.8-5.4-1-7.6-2.1-1.6-7-1.5-9.6-2.7-6-3-2-7.6-4-12.3-.7-1.5-2.7-5.1-3.6-6.1-2-2.3-3.3-1.8-5.6-.3-2.3 1.6-2.6 3.7-5.8 3.4-3.3-.4-4-2.2-4.7-4.7 0-.3 0-.4-.3-.3l-.5-1.3c0-2.8.2-2.5.8-5 2 1.7 3.5 3.8 5.4 5.6 1.8-2 2.3-4.1 5-5.3 2.3-1 5.3-.7 8-.7 4.7 0 7.9-3.2 12-6 1.1-1 5.8-3.4 6.3-4.7 1-2.4-2-4.7-2.4-7-.5-3.9 3-5.7 3.7-9 .6-2.4-.9-4.7-2.3-6.6 4.2 3.7 5.3 11.1 5.9 9.1.8-2.8 1.5 5.6 1.1 8.3-.4 3.3.2 5.6-1.4 8.5-1.2 2-4.3 7-6.6 7.5-1.8 3.2-7.8 11.5.9 9.5 2.8-.6 5.2-2.8 8-3.6 3.5-1 6.8-.8 10.4-1 5-.3 10-3.2 8.6-9.3-.7-3-1.3-4-1-7.4a22 22 0 0 0-.3-8.9c4 5 .4 11 5.4 14.3 6 4 4.2 8.5-1.7 11.6-4.6 2.5-3.2 8-6.3 12.1l-4.4 6.5c-1.3 1.7-3.4 3.1-4.5 5.2-.7 1.1-1.2 1.8-1 3.2 1.4.7 3.2 2.2 4 3.7 4.1-8.5 12.7-7.6 19-13 2.6-2.3 3-5.6 5.9-7.7 2.5-1.7 6.4-4 9.9-3.9-2.4 2.4-6 3-8.2 5.7-1.4 1.7-2 3.7-2.7 5.6-2.1 4.9-6.9 7-11 10.2-2.2 1.6-4 3.1-5.4 5.4-1.8 2.6-1.3 3.3-1 6.4.6 5.7 2.7 11 6 16"/><path fill="#9a9a9a" d="m521 1048 516-304.5-18-28.5-498 292.7z"/><g fill-rule="evenodd"><path fill="#6e1f1f" d="M520 325h82.3V17H520z"/><path fill="#6e1f1f" d="M520 17h82.3v308H520v19.9h104V0H520z"/><path fill="#9d2e2e" d="M520 276.2v8h72.1v32.9H520v8h82.6V17.2H520v144.4h72.1v32.9H520v8h72.1v32.9H520v8h72.1v32.8z"/><path fill="#75d5eb" d="M520 317h72.1v-32.8H520zm0-40.8h72.1v-32.9H520zm0-40.8h72.1v-33H520zm0-41h72.1v-32.8H520z"/></g></g><image xlink:href="data:image/png;base64,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" width="1" height="1" image-rendering="optimizeSpeed" mask="url(#f)" preserveAspectRatio="none" transform="matrix(2.92153 0 0 9.69418 161.273 31.235)"/><g clip-path="url(#g)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#fff" d="M866 459.7H638v245.6h228z"/><path fill="#75d5eb" d="M853 471H650.3v221.3H853z"/><path fill="#fff" d="M894.7 100h-228v245.7h228z"/><path fill="#75d5eb" d="M881.7 111.3H679v221.4h202.7z"/></g><path fill="url(#h)" d="M426.3 187.7h85.4v136.6h-85.4z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#i)" d="M425.7 0H511v176h-85.3z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#j)" d="M433 148.3a12.7 12.7 0 1 1 25.3 0 12.7 12.7 0 0 1-25.3 0" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><g clip-path="url(#k)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#a7a7a7" d="M349.8 796.2c-5.9 3.2-9.9 6.7-11.8 11.5-5.4 2.2-11 5.8-13.7 9.1-4.7 6 1.6 16.6 8 19.2 6.2 2.5 10.3.8 14.1-1.7 3 1.1 6.3.7 10-2.3v.7a53.2 53.2 0 0 0 2.8-3.3 49 49 0 0 0 11.1-26c.8-15.1-10.6-12.5-20.5-7.2M473.7 774c.6-3.8-1.1-6.8-5.4-8-9.5-2.7-20.7 5-30.5 5.2a84.1 84.1 0 0 0-32.8 7.3c-4.8 2-15.7.6-20 3.6-3.1 2.2-4.3 9.7-5.4 13.2-1.4 4.7-3.5 9.9-4 14.7-.5 5.6 1.3 11.2.6 16.6-7.7 2.3-9.6 9.3-.4 12.1-16 3.5-2.4 26 1.9 35.3 2.6 5.7 8.6 9.5 13.1 14.8 3 3.6 5.3 4.9 4.7 9-.4 2.9-4.2 4.1-3 8.8 3 .8 6 1.3 9 2.2.4 5.9 2 10.8 2 16.4 0 6.6-4 8.7-6.5 14.1l-1-.7c.3 1.3-.5 2.7-3.5 4.2-6.4 3.2-17-1.2-23-3.6a151.7 151.7 0 0 1-39.4-24.6c-9-7.4-16.5-15.5-27.8-19a422.5 422.5 0 0 1-78.7-34.6c-19.8-11.1-45-26.3-56.5-46.9 7.2-6 20.5-1.9 29.2-2.7 7.4-.8 24.7 3.2 30.7-2 3.2-2.9.3-9.8 4.1-12.6 4.5-3.2 9.3 3 11.8 6 2.8 3.7 3.6 10.4 8.1 11.9 2.6.8 5.3-1.5 8-1.4 2.3 0 5 1.7 7.3 2 11 1.6 14.8-8.7 24.7-9.3 5-.3 11 1 16 0 4.7-1 7.1-7.4 12.7-4.5 3.4 1.8 2.3 5.5 6.6 4.5 1.8-.4 3.4-3.4 4.6-4.7 2.8-3.3 4.9-6.7 8.3-9.8 4-3.6 8-5.1 12.5-6.8 2.7-1 3.5-2.2 7.3-2.7 2.2-.2 6.5 1 8 .5a31 31 0 0 0 10.1-7.7c4.3-4.8 2.9-8.6 2.6-14.8-.3-5.9.3-9.8.6-14.7.3-4.8-4.2-10.3-2.5-13.8 5-9.6 15.6 13.7 14.5 19.9-.7 4.3-6.4 9.2-4.7 14 2 5.6 6.8 1.8 10.8-.5 3.8-2.4 8.8-5.7 13.3-6.2 6-.8 10 2.3 16-.8 11.7-6.3 11.2-17.5 12.1-29.2 6.3 5.2 7.5 12.5 5.8 20.5-1.6 7.6-7.8 9.5-10.5 16 11 .5 20-5.5 30.6-4.5 3.8.3 11.8.8 12 6 0 2.7-2.2 4.9-4 7.3M198 452.4c-5 3.7-6.7 9.9.6 12.8 4.8 1.9 12.4.3 17.3-.2 11-1 26.4.6 36.2-5.2 1-.5 1-.5 1.8-1.5l1.3.7c-7.1-9.2-12.5-12.8-24.5-13.3-10.5-.5-24.2.6-32.7 6.7m236-66.2c-2 1.3-4.3.4-6 1.4-3.6 2.3-5.3 6.5-9.2 8.1-8.4 3.4-18.7-2.1-26.7-3.4-8.3-1.2-21.4-5.7-29.2-.5-3.2 2.1-4.2 6.3-8.2 8.4-4 2-8.4 2.1-13.2 2.3-4.2 9.6-14.7 11-24 13-4.7 1-10.1 4-14.9 4-4.6.1-9.2-1.7-13.8-2.6-10.8-2.3-20.2-8-31.4-.7-4.5 3-5.2 7.5-6.5 12.3-1.4 5.3-2.6 8.6 3.2 11.3 5.3 2.6 11.7.2 17.3 1.2 6.1 1 7.2 5.5 12.2 8.7 8.4 5.5 25 .3 29 11.2-8 .7-16 3.7-24.6 4.1-12 .6-24 2.1-35.9 2.7-21.6 1-45.3 3-65.3-2l-4.7-3.4c-2.2-10.3 13-14.8 20-17.3a90.8 90.8 0 0 0 25.5-15.9c7.6-6.4 15.9-15.1 25.2-20.1a32 32 0 0 1 28.1-2.1c8.8 2.8 19.7 6.8 28.4 2.6 8.3-4 17-7.8 26-10.7 4-1.2 9.7-1.4 13.5-3.6 5.7-3.3 3-9.2 7.4-12.8 6.3-5.1 25.5.5 31.9 2.6 7.7 2.6 18 4.1 26.7 3.3 7.8-.7 14.6-3.8 21.9-5.8-.6.7-2 3.2-2.7 3.7"/><path fill="#994343" d="M521 1048 .4 753.2l17.2-30.4 521 295z"/><path fill="#775553" d="M250.5 3c-2.2 3.8-2.5 9.4-5.8 12.2-7.3 6-22.2-2-30.7-2.2-12.4-.2-20.8 7.3-32.7 8.7-13.6 1.5-21.1 1.8-21.4 17.2-4.7-1.5-17-2.8-21.2 0-4.5 3-1.9 11-4.7 15.6-4.2 7-10.8 3.8-17.3 7.7-4.2 2.5-5.8 8.4-6 14-12-3-10.3 8-16.2 14.8-5 5.7-13.7 6.5-19.5 9.8V0h177.3a58.4 58.4 0 0 0-1.8 3"/><path fill="#7c4c40" d="M370.7 101.7h-228v244.6h228zm38 358.3h-228v244.7h228z"/></g><path fill="url(#l)" d="M74.8 0h48v15.3h-48z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#m)" d="M129.3 0H174v15.3h-44.7z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#n)" d="M74.8 22.3h29.4v15.4H74.8z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#o)" d="M74.8 44.5h12v15.3h-12z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><g clip-path="url(#p)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#51c4de" d="M250.3 261.7h-96v72h96zm108-.4h-96v72h96zm0-148h-96V250h96zm-108-.3h-96v136.7h96z"/><path d="M288.3 619.7h-96v72h96z"/><path fill="#51c4de" d="M396.3 620.3h-96v72h96zm0-148h-96V609h96zm-108-.3h-96v136.7h96z"/></g><path fill="url(#q)" d="m226.8 15.3-5.5-1.4V0h30.2v1.4l-.8 1.3c-2.2 3.8-2.5 9.4-5.8 12.2a8.2 8.2 0 0 1-.6.4z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#r)" d="M179.3 15.3V0H216v13.4a18 18 0 0 0-2-.2c-4.4 0-8.4.9-12.1 2.1z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#s)" d="M156.4 38a39.1 39.1 0 0 0-15.4 0h-30.3V22.7h48V38z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#t)" d="M92 60V44.7h44.1c-.4 3.3-.2 7.2-1.8 10-2.6 4.2-5.9 4.7-9.6 5.3z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#u)" d="M74.8 79.8V64.5H103v12.3c-1.1.7-2 1.8-2.7 3z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><path fill="url(#v)" d="M75 100V84.7h23c-1 2.3-2 4.7-3.7 6.8-4.2 4.9-11 6.1-16.5 8.5z" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"/><g fill-rule="evenodd" clip-path="url(#w)" transform="matrix(.04427 0 0 -.04427 143.301 46.551)"><path fill="#51c4de" d="m246.7 679-3.1 11-1 .2-4.1-17.2h-.9l-3.5 18.7h27l-4-9.8-5.8 10z"/><path d="m305.7 135 6.2 26-29.4-2.2-.2 1 26.4 8v.8l-27.4 5.2.1 1 31.7 1.7-6.5 15 1.1.5 11.2-14.2 17.8 16.3.8-.6-10.7-24.2 21.6-13.4-.4-1.2c-5.4 1-10.9 1.4-16.1 2.9-5.7 1.5-9.5.5-12.6-5-3.5-6.3-8.2-12-12.4-18l-1.2.4"/></g><image xlink:href="data:image/png;base64,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" width="1" height="1" image-rendering="optimizeSpeed" mask="url(#x)" preserveAspectRatio="none" transform="matrix(22.8411 0 0 14.78474 166.364 .16)"/></svg> </a></div> </div> <div class="doc-backer doc-backer-release"> <div class="backer_logo"><a class="link stretched-link" href="https://jolicode.com" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 395.505 91.806" class="backer-logo-jolicode"> <style> .backer-logo-jolicode path.jolicode-logo-letter { fill: #2b2b2a; } .dark-theme .backer-logo-jolicode path.jolicode-logo-letter { fill: #FFFFFF; } </style> <g transform="matrix(1.25 0 0 -1.25 -174.487 572.131)"> <path class="jolicode-logo-letter" d="M201.208 440.446v.063l-.007-.002a2.967 2.967 0 01-5.912-.48h-.002v-41.854c0-2.17-.776-4.033-2.331-5.587-1.554-1.555-3.368-2.332-5.44-2.332-2.393 0-4.366.777-5.921 2.332-1.53 1.505-2.32 3.403-2.368 5.7v17.417h-.01l.002.055a2.962 2.962 0 01-3.084 2.827 2.957 2.957 0 01-2.826-2.896h-.004v-17.516c0-3.797 1.358-7.079 4.07-9.843 2.666-2.714 5.97-4.07 9.919-4.07 3.849 0 7.13 1.356 9.844 4.07 2.713 2.715 4.07 5.994 4.07 9.843v41.873c.008.13.01.26 0 .391v.01M260.363 446.628c1.01 0 1.868.364 2.578 1.093.71.73 1.065 1.596 1.065 2.606 0 1.027-.355 1.896-1.065 2.605-.728.73-1.588 1.093-2.578 1.093-1.009 0-1.869-.364-2.578-1.093a3.591 3.591 0 01-1.065-2.605c0-1.029.353-1.9 1.065-2.62a3.487 3.487 0 012.578-1.079M198.173 454.025c-1.009 0-1.869-.364-2.579-1.093a3.598 3.598 0 01-1.064-2.605c0-1.029.354-1.9 1.064-2.62a3.49 3.49 0 012.58-1.079c1.008 0 1.867.364 2.577 1.093.711.73 1.065 1.596 1.065 2.606 0 1.027-.354 1.896-1.065 2.605-.728.73-1.588 1.093-2.578 1.093M226.212 413.086c-.05-2.294-.84-4.194-2.37-5.697-1.578-1.555-3.403-2.332-5.476-2.332-2.145 0-4.057.777-5.736 2.332-1.652 1.528-2.48 3.428-2.48 5.697v13.619c.025 2.122.803 3.947 2.333 5.478 1.554 1.553 3.367 2.33 5.439 2.33 2.369 0 4.342-.777 5.92-2.33 1.53-1.506 2.32-3.405 2.37-5.7v-13.397zm-8.067 27.423c-3.85 0-7.13-1.358-9.843-4.072-2.715-2.714-4.071-5.994-4.071-9.843v-13.618c0-3.85 1.356-7.131 4.07-9.845 2.714-2.714 5.995-4.07 9.844-4.07 3.847 0 7.14 1.356 9.88 4.07 2.738 2.714 4.108 5.996 4.108 9.845v13.618c0 3.849-1.37 7.129-4.108 9.843-2.74 2.714-6.033 4.072-9.88 4.072M373.107 419.822v6.771c0 2.171.777 4.035 2.332 5.59 1.553 1.553 3.367 2.33 5.438 2.33 2.371 0 4.343-.779 5.923-2.337 1.43-1.409 2.205-3.153 2.33-5.23l-16.023-7.124zm21.98 6.771c0 3.998-1.37 7.278-4.106 9.844-2.886 2.714-6.18 4.072-9.88 4.072-3.849 0-7.13-1.358-9.846-4.072-2.713-2.714-4.069-5.994-4.069-9.844v-13.618c0-3.848 1.356-7.13 4.07-9.844 2.714-2.714 5.996-4.07 9.844-4.07 3.847 0 7.031 1.333 9.55 3.997 2.957 3.158 4.437 6.464 4.437 9.917v2.32a2.972 2.972 0 01-2.97 2.941 2.974 2.974 0 01-2.938-2.524l-.012.003v-.096a2.98 2.98 0 01-.024-.355 3 3 0 01.024-.357v-1.82c-.05-2.295-.839-4.196-2.367-5.699-1.58-1.554-3.406-2.332-5.478-2.332-2.368 0-4.33.795-5.883 2.387-1.555 1.591-2.332 3.557-2.332 5.9l21.98 9.772v3.478zM358.912 413.086c-.05-2.294-.84-4.194-2.368-5.697-1.58-1.555-3.405-2.332-5.476-2.332-2.147 0-4.059.777-5.738 2.332-1.652 1.528-2.48 3.428-2.48 5.697v13.619c.026 2.122.803 3.947 2.333 5.478 1.555 1.553 3.368 2.33 5.44 2.33 2.368 0 4.341-.777 5.921-2.33 1.527-1.506 2.318-3.405 2.368-5.7v-13.397zm2.988 44.048a2.967 2.967 0 01-2.967-2.871l-.02-.001V437.99c-2.345 1.678-5.033 2.518-8.068 2.518-3.849 0-7.128-1.358-9.843-4.072-2.714-2.714-4.07-5.994-4.07-9.843v-13.618c0-3.85 1.356-7.131 4.07-9.845 2.715-2.714 5.994-4.07 9.843-4.07 3.848 0 7.143 1.356 9.88 4.07 2.74 2.714 4.11 5.996 4.11 9.845v40.732c.021.149.037.299.037.454a2.972 2.972 0 01-2.972 2.972"></path> <path class="jolicode-logo-letter" d="M328.538 413.086c-.05-2.294-.838-4.194-2.368-5.697-1.58-1.555-3.403-2.332-5.476-2.332-2.147 0-4.059.777-5.738 2.332-1.652 1.528-2.48 3.428-2.48 5.697v2.235c.003.07.012.138.012.208v3.072l-.012-.004v8.108c.026 2.122.803 3.947 2.333 5.478 1.555 1.553 3.368 2.33 5.44 2.33 2.37 0 4.341-.777 5.921-2.33 1.53-1.506 2.318-3.405 2.368-5.7v-13.397zm-8.067 27.423c-3.849 0-7.128-1.358-9.843-4.072-2.714-2.714-4.069-5.994-4.069-9.843v-11.365c-.046-2.877-1.099-5.333-3.174-7.36-2.122-2.098-4.65-3.144-7.587-3.144-2.985 0-5.527 1.046-7.624 3.145-1.91 1.91-2.94 4.174-3.11 6.784v1.282l-.034-.004v22.688c0 2.96 1.047 5.483 3.144 7.568 2.097 2.085 4.64 3.127 7.624 3.127 2.936 0 5.465-1.048 7.587-3.145.863-.855 1.786-2.264 2.541-3.608a2.893 2.893 0 015.138 2.644l.007.004c-.806 1.772-1.962 3.413-3.469 4.919-3.207 3.233-7.14 4.848-11.804 4.848-4.614 0-8.549-1.61-11.804-4.828-3.257-3.22-4.886-7.1-4.886-11.638v-22.982c0-.24.023-.467.032-.703-.027-3.936-.802-5.606-2.329-7.252-1.553-1.68-3.367-2.517-5.44-2.517-2.368 0-4.342.777-5.92 2.332-1.53 1.503-2.319 3.403-2.369 5.697v27.423l-.016-.002v.036a2.953 2.953 0 11-5.9-.25c0-.01.003-.02.003-.032h-.007v-26.904l-.025-.011c0-2.172-.777-4.095-2.332-5.772-1.554-1.68-3.368-2.517-5.44-2.517-2.369 0-4.34.777-5.92 2.332-1.53 1.503-2.32 3.403-2.368 5.697v41.468c.003.062.01.123.01.186a2.965 2.965 0 01-5.93 0v-.01h-.003v-41.754c0-3.85 1.37-7.131 4.11-9.845 2.738-2.714 6.031-4.07 9.88-4.07 3.847 0 7.128 1.356 9.843 4.07.413.414.785.848 1.135 1.286.355-.438.73-.872 1.147-1.286 2.738-2.714 6.032-4.07 9.881-4.07 3.85 0 7.13 1.356 9.843 4.07a14.8 14.8 0 011.758 2.11c.386-.467.795-.926 1.243-1.37 3.23-3.206 7.166-4.81 11.804-4.81 4.613 0 8.548 1.61 11.804 4.83.45.445.861.906 1.25 1.376a15.002 15.002 0 011.776-2.136c2.715-2.714 5.994-4.07 9.843-4.07 3.848 0 7.143 1.356 9.882 4.07 2.737 2.714 4.107 5.996 4.107 9.845v13.618c0 3.849-1.37 7.129-4.107 9.843-2.739 2.714-6.034 4.072-9.882 4.072"></path> <path d="M433.546 396.935c-.69 0-1.38.262-1.905.788a2.697 2.697 0 000 3.81l17.846 17.847-17.846 17.847a2.695 2.695 0 103.812 3.811l19.752-19.752a2.692 2.692 0 000-3.811l-19.752-19.752a2.687 2.687 0 00-1.907-.788M162.037 397.637c-.69 0-1.378.263-1.905.789l-19.753 19.752a2.695 2.695 0 000 3.811l19.752 19.752a2.694 2.694 0 003.81 0 2.694 2.694 0 000-3.811l-17.846-17.847 17.847-17.846a2.694 2.694 0 00-1.905-4.6M401.738 390.904a2.694 2.694 0 00-2.49 3.723l21.248 51.558a2.695 2.695 0 104.983-2.053l-21.248-51.557a2.695 2.695 0 00-2.493-1.67" fill="#e9ce37"></path> </g> </svg> </a></div> </div> <div class="doc-backer doc-backer-release"> <div class="backer_logo"><a class="link stretched-link" href="https://les-tilleuls.coop/" target="_blank" rel="noopener"><?xml version="1.0" encoding="utf-8"?> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1197.2 169.48" width="1197.2" height="169.48" style="enable-background:new 0 0 1197.2 169.48;" xml:space="preserve"> <style type="text/css"> .lestilleuls-logo-st0{fill:#EC4D28;} .dark-theme .lestilleuls-logo-wordmark-dark { fill: #fff; } </style> <g> <g> <g> <path class="lestilleuls-logo-wordmark-dark" d="M385.53,96.15h40v15h-40V96.15z"/> <path class="lestilleuls-logo-wordmark-dark" d="M505.53,139.48h-20v-22.26c0-11.99,8.31-21.77,20-24.41L505.53,139.48z"/> <path class="lestilleuls-logo-wordmark-dark" d="M745.53,137.09c-3.41,0.99-7.79,1.92-13.17,2.77c-5.37,0.85-11.02,1.28-16.93,1.28c-6,0-10-0.81-13.98-2.44 c-3.99-1.62-7.14-3.9-9.47-6.83c-2.33-2.93-3.99-6.43-4.97-10.49c-0.99-4.06-1.48-8.53-1.48-13.4V67.82h20v37.75 c0,6.49,0.85,11.19,2.56,14.07c1.7,2.89,3.89,4.33,8.56,4.33c1.43,0,2.96-0.07,4.58-0.2c1.62-0.13,3.05-0.29,4.31-0.47V67.82h20 V137.09z"/> <g> <path class="lestilleuls-logo-st0" d="M1054.11,136.58c-5.77-3.05-10.31-7.4-13.61-13.07c-3.3-5.66-4.96-12.28-4.96-19.86 c0-7.49,1.67-14.09,5.02-19.79c3.35-5.71,7.93-10.08,13.75-13.13c5.82-3.05,12.34-4.57,19.56-4.57c7.23,0,13.75,1.52,19.56,4.57 c5.82,3.05,10.4,7.43,13.75,13.13c3.35,5.71,5.02,12.3,5.02,19.79c0,7.49-1.7,14.09-5.09,19.79 c-3.39,5.71-8.02,10.08-13.88,13.13c-5.86,3.05-12.41,4.57-19.63,4.57C1066.38,141.15,1059.88,139.63,1054.11,136.58z M1084.64,117.11c3.04-3.13,4.56-7.62,4.56-13.46c0-5.84-1.48-10.32-4.43-13.46c-2.95-3.13-6.59-4.7-10.91-4.7 c-4.41,0-8.06,1.55-10.97,4.64c-2.91,3.1-4.36,7.6-4.36,13.53c0,5.84,1.43,10.32,4.3,13.46c2.86,3.14,6.45,4.7,10.77,4.7 C1077.92,121.81,1081.6,120.25,1084.64,117.11z"/> </g> <g> <path class="lestilleuls-logo-st0" d="M969.11,136.58c-5.77-3.05-10.31-7.4-13.61-13.07c-3.3-5.66-4.96-12.28-4.96-19.86 c0-7.49,1.67-14.09,5.02-19.79c3.35-5.71,7.93-10.08,13.75-13.13c5.82-3.05,12.34-4.57,19.56-4.57s13.75,1.52,19.56,4.57 c5.82,3.05,10.4,7.43,13.75,13.13c3.35,5.71,5.02,12.3,5.02,19.79c0,7.49-1.7,14.09-5.09,19.79 c-3.39,5.71-8.02,10.08-13.88,13.13c-5.86,3.05-12.41,4.57-19.63,4.57C981.38,141.15,974.88,139.63,969.11,136.58z M999.64,117.11c3.04-3.13,4.56-7.62,4.56-13.46c0-5.84-1.48-10.32-4.43-13.46c-2.95-3.13-6.59-4.7-10.91-4.7 c-4.41,0-8.06,1.55-10.97,4.64c-2.91,3.1-4.36,7.6-4.36,13.53c0,5.84,1.43,10.32,4.3,13.46c2.86,3.14,6.45,4.7,10.77,4.7 C992.92,121.81,996.6,120.25,999.64,117.11z"/> </g> <path class="lestilleuls-logo-st0" d="M945.13,129.56c-2.09-3.58-3.67-7.44-4.77-11.55c-2.85,2.53-6.21,3.81-10.09,3.81 c-4.32,0-7.91-1.57-10.77-4.7c-2.86-3.13-4.3-7.62-4.3-13.46c0-5.92,1.45-10.43,4.36-13.53c2.91-3.09,6.56-4.64,10.97-4.64 c3.84,0,7.13,1.24,9.89,3.72c1.11-4.05,2.7-7.87,4.79-11.43c1.48-2.52,3.16-4.84,5.02-6.98c-0.04-0.02-0.09-0.05-0.13-0.07 c-5.82-3.05-12.34-4.57-19.56-4.57s-13.75,1.52-19.56,4.57c-5.82,3.05-10.4,7.43-13.75,13.13c-3.35,5.71-5.02,12.3-5.02,19.79 c0,7.58,1.65,14.2,4.96,19.86c3.3,5.66,7.84,10.02,13.61,13.07c5.77,3.05,12.27,4.57,19.5,4.57c7.22,0,13.77-1.52,19.63-4.57 c0.06-0.03,0.11-0.07,0.17-0.1C948.25,134.35,946.58,132.05,945.13,129.56z"/> <path class="lestilleuls-logo-wordmark-dark" d="M233.87,119.48h-35v-100c-12.51,4.03-20,16.13-20,29.33v90.67h55V119.48z"/> <path class="lestilleuls-logo-wordmark-dark" d="M410.53,19.48v20h35v100h20v-100l18.33,0c11.05,0,20-8.95,20-20v0L410.53,19.48z"/> <path class="lestilleuls-logo-wordmark-dark" d="M668.01,136.65c-1.08,0.54-2.53,1.08-4.33,1.62c-1.81,0.54-3.81,1.02-6.02,1.42c-2.21,0.41-4.58,0.74-7.1,1.02 c-2.53,0.27-5.05,0.41-7.58,0.41c-6.41,0-11.98-0.95-16.71-2.84c-4.74-1.89-8.66-4.49-11.77-7.78c-3.11-3.29-5.41-7.19-6.9-11.7 c-1.49-4.51-2.23-9.38-2.23-14.61c0-6.31,0.97-11.84,2.91-16.58c1.94-4.74,4.49-8.68,7.64-11.84c3.16-3.16,6.79-5.55,10.89-7.17 c4.1-1.62,8.32-2.44,12.65-2.44c10.1,0,18.09,3.09,23.95,9.27c5.86,6.18,8.8,15.27,8.8,27.27c0,1.17-0.05,2.46-0.14,3.86 c-0.09,1.4-0.18,2.64-0.27,3.72h-45.74c0.45,4.15,2.39,7.44,5.82,9.88c3.43,2.44,8.03,3.65,13.8,3.65c3.7,0,7.33-0.34,10.89-1.02 c1.11-0.21,2.17-0.44,3.15-0.68L668.01,136.65z M652.72,96.26c-0.09-1.71-0.39-3.38-0.88-5.01c-0.5-1.63-1.26-3.07-2.3-4.33 c-1.04-1.26-2.35-2.3-3.92-3.11c-1.58-0.81-3.54-1.22-5.89-1.22c-2.26,0-4.19,0.38-5.82,1.15c-1.62,0.77-2.98,1.78-4.06,3.04 c-1.08,1.26-1.92,2.73-2.5,4.4c-0.59,1.67-1.02,3.36-1.29,5.07H652.72z"/> <path class="lestilleuls-logo-wordmark-dark" d="M371.13,105.81c-1.67-1.84-3.95-3.56-6.83-5.15c-2.89-1.59-6.54-3.21-10.96-4.85c-2.17-0.81-3.95-1.57-5.35-2.25 c-1.4-0.68-2.5-1.31-3.32-1.9c-0.81-0.59-1.35-1.2-1.62-1.83c-0.27-0.63-0.41-1.35-0.41-2.16c0-3.52,3.16-5.28,9.47-5.28 c3.43,0,6.52,0.32,9.27,0.95c2.56,0.59,4.93,1.26,7.15,2.01V68.54c-1.61-0.43-3.42-0.84-5.46-1.23 c-3.97-0.77-8.12-1.15-12.45-1.15c-8.66,0-15.47,1.94-20.43,5.82c-4.96,3.88-7.44,9.16-7.44,15.83c0,3.43,0.49,6.36,1.49,8.79 c0.99,2.44,2.39,4.53,4.2,6.29c1.8,1.76,3.99,3.27,6.56,4.53c2.57,1.26,5.43,2.48,8.59,3.65c4.06,1.54,7.08,2.91,9.07,4.13 c1.98,1.22,2.98,2.64,2.98,4.26c0,2.07-0.77,3.47-2.3,4.19c-1.54,0.72-4.15,1.08-7.85,1.08c-3.52,0-7.08-0.38-10.69-1.15 c-1.91-0.41-3.79-0.89-5.65-1.46l-8.29,14.65c1.62,0.72,4.53,1.62,8.73,2.71c4.19,1.08,9.45,1.62,15.76,1.62 c9.65,0,17.12-1.8,22.39-5.4c5.28-3.6,7.92-8.91,7.92-15.93c0-2.97-0.34-5.58-1.02-7.83C373.97,109.7,372.8,107.65,371.13,105.81 z"/> <path class="lestilleuls-logo-wordmark-dark" d="M852.67,105.84c-1.67-1.84-3.95-3.56-6.83-5.15c-2.89-1.59-6.54-3.21-10.96-4.85c-2.17-0.81-3.95-1.57-5.35-2.25 c-1.4-0.68-2.5-1.31-3.32-1.9c-0.81-0.59-1.35-1.2-1.62-1.83c-0.27-0.63-0.41-1.35-0.41-2.16c0-3.52,3.16-5.28,9.47-5.28 c3.43,0,6.52,0.32,9.27,0.95c2.56,0.59,4.93,1.26,7.15,2.01V68.57c-1.61-0.43-3.42-0.84-5.46-1.23 c-3.97-0.77-8.12-1.15-12.45-1.15c-8.66,0-15.47,1.94-20.43,5.82c-4.96,3.88-7.44,9.16-7.44,15.83c0,3.43,0.49,6.36,1.49,8.79 c0.99,2.44,2.39,4.53,4.2,6.29c1.8,1.76,3.99,3.27,6.56,4.53c2.57,1.26,5.43,2.48,8.59,3.65c4.06,1.54,7.08,2.91,9.07,4.13 c1.98,1.22,2.98,2.64,2.98,4.26c0,2.07-0.77,3.47-2.3,4.19c-1.54,0.72-4.15,1.08-7.85,1.08c-3.52,0-7.08-0.38-10.69-1.15 c-1.91-0.41-3.79-0.89-5.65-1.46l-8.29,14.65c1.62,0.72,4.53,1.62,8.73,2.71c4.19,1.08,9.45,1.62,15.76,1.62 c9.65,0,17.12-1.8,22.39-5.4c5.28-3.6,7.92-8.91,7.92-15.93c0-2.97-0.34-5.58-1.02-7.83 C855.51,109.74,854.34,107.69,852.67,105.84z"/> <path class="lestilleuls-logo-wordmark-dark" d="M553.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65 c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62 c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L553.72,141.15z"/> <path class="lestilleuls-logo-wordmark-dark" d="M593.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65 c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62 c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L593.72,141.15z"/> <path class="lestilleuls-logo-wordmark-dark" d="M793.72,141.15c-5.82-0.09-10.54-0.72-14.16-1.88c-3.62-1.16-6.49-2.79-8.59-4.9c-2.1-2.1-3.54-4.65-4.3-7.65 c-0.76-3-1.14-6.38-1.14-10.13v-77.1h20v73.08c0,1.79,0.13,3.4,0.4,4.83c0.27,1.43,0.78,2.64,1.54,3.62 c0.76,0.99,1.86,1.79,3.29,2.42c1.43,0.63,3.36,1.03,5.77,1.21L793.72,141.15z"/> <path class="lestilleuls-logo-st0" d="M507.2,72.82c0,3.8-1.19,6.7-3.58,8.69c-2.38,1.99-5.08,2.98-8.09,2.98s-5.71-0.99-8.09-2.98 c-2.38-1.99-3.58-4.88-3.58-8.69s1.19-6.7,3.58-8.69c2.38-1.99,5.08-2.98,8.09-2.98s5.71,0.99,8.09,2.98 C506.01,66.12,507.2,69.01,507.2,72.82z"/> <path class="lestilleuls-logo-st0" d="M887.2,129.48c0,3.8-1.19,6.7-3.58,8.69c-2.38,1.99-5.08,2.98-8.09,2.98c-3.01,0-5.71-0.99-8.09-2.98 c-2.38-1.99-3.58-4.88-3.58-8.69c0-3.8,1.19-6.7,3.58-8.69c2.38-1.99,5.08-2.98,8.09-2.98c3.01,0,5.71,0.99,8.09,2.98 C886.01,122.78,887.2,125.68,887.2,129.48z"/> <path class="lestilleuls-logo-st0" d="M1192.18,83.86c-3.35-5.71-7.93-10.08-13.75-13.13c-5.82-3.05-12.34-4.57-19.56-4.57s-13.75,1.52-19.56,4.57 c-5.82,3.05-10.4,7.43-13.75,13.13c-3.22,5.49-4.88,11.81-5,18.96h-0.02v66.67h20v-32.21c5.41,2.57,11.43,3.87,18.07,3.87 c7.22,0,13.77-1.52,19.63-4.57c5.86-3.05,10.49-7.43,13.88-13.13c3.39-5.7,5.09-12.3,5.09-19.79S1195.53,89.56,1192.18,83.86z M1169.64,117.11c-3.04,3.14-6.72,4.7-11.04,4.7c-4.32,0-7.91-1.57-10.77-4.7c-2.86-3.13-4.3-7.62-4.3-13.46 c0-5.92,1.45-10.43,4.36-13.53c2.91-3.09,6.56-4.64,10.97-4.64c4.32,0,7.95,1.57,10.91,4.7c2.95,3.14,4.43,7.62,4.43,13.46 C1174.2,109.49,1172.68,113.98,1169.64,117.11z"/> <path class="lestilleuls-logo-wordmark-dark" d="M307.26,136.87c-1.08,0.54-2.53,1.08-4.33,1.62c-1.81,0.54-3.81,1.02-6.02,1.42c-2.21,0.41-4.58,0.74-7.1,1.02 c-2.53,0.27-5.05,0.41-7.58,0.41c-6.41,0-11.98-0.95-16.71-2.84c-4.74-1.89-8.66-4.49-11.77-7.78c-3.11-3.29-5.41-7.19-6.9-11.7 c-1.49-4.51-2.23-9.38-2.23-14.61c0-6.31,0.97-11.84,2.91-16.58c1.94-4.74,4.49-8.68,7.64-11.84c3.16-3.16,6.79-5.55,10.89-7.17 c4.1-1.62,8.32-2.44,12.65-2.44c10.1,0,18.09,3.09,23.95,9.27c5.86,6.18,8.8,15.27,8.8,27.27c0,1.17-0.05,2.46-0.14,3.86 c-0.09,1.4-0.18,2.64-0.27,3.72h-45.74c0.45,4.15,2.39,7.44,5.82,9.88c3.43,2.44,8.03,3.65,13.8,3.65c3.7,0,7.33-0.34,10.89-1.02 c1.11-0.21,2.17-0.44,3.15-0.68L307.26,136.87z M291.97,96.48c-0.09-1.71-0.39-3.38-0.88-5.01c-0.5-1.63-1.26-3.07-2.3-4.33 c-1.04-1.26-2.35-2.3-3.92-3.11c-1.58-0.81-3.54-1.22-5.89-1.22c-2.26,0-4.19,0.38-5.82,1.15c-1.62,0.77-2.98,1.78-4.06,3.04 c-1.08,1.26-1.92,2.73-2.5,4.4c-0.59,1.67-1.02,3.36-1.29,5.07H291.97z"/> </g> <g> <path class="lestilleuls-logo-st0" d="M84.52,75.41C70.6,75.05,59.04,65.02,56.34,51.8c-0.93-0.26-1.82-0.61-2.66-1.06 c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14c0-2.7,0.6-5.07,1.81-7.12c1.2-2.05,2.85-3.63,4.94-4.72 c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65c2.09,1.1,3.74,2.67,4.94,4.72c1.2,2.05,1.81,4.42,1.81,7.12 c0,2.69-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72c-0.97,0.5-1.99,0.89-3.07,1.16c2.54,8.68,10.43,15.1,19.84,15.44 l0-30.84c-0.36-0.15-0.71-0.31-1.05-0.49c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14c0-2.69,0.6-5.07,1.81-7.12 c1.2-2.05,2.85-3.63,4.94-4.72c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65c2.09,1.1,3.74,2.67,4.94,4.72 c1.2,2.05,1.81,4.42,1.81,7.12c0,2.7-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72c-0.3,0.16-0.6,0.3-0.91,0.43v45 c9.96-3.92,17.42-12.85,19.24-23.68c-0.8-0.25-1.58-0.57-2.31-0.96c-2.08-1.1-3.71-2.66-4.9-4.7c-1.19-2.04-1.78-4.42-1.78-7.14 c0-2.7,0.6-5.07,1.81-7.12c1.2-2.05,2.85-3.63,4.94-4.72c2.09-1.1,4.44-1.65,7.04-1.65c2.6,0,4.94,0.55,7.04,1.65 c2.09,1.1,3.74,2.67,4.94,4.72c1.2,2.05,1.81,4.42,1.81,7.12c0,2.69-0.61,5.07-1.83,7.12c-1.22,2.05-2.88,3.63-4.99,4.72 c-1.14,0.59-2.35,1.02-3.64,1.29c-2.14,15.16-13.02,27.55-27.36,31.89v11.73c19.05-2.1,35.19-13.96,43.32-30.45V33.7 c0-18.61-15.09-33.7-33.7-33.7h-44.2C46.19,9.66,35.57,27.13,35.57,47.03c0,24.03,15.48,44.5,36.99,51.98v13.52 c-28.74-7.92-49.91-34.28-49.91-65.5c0-18.24,7.24-34.81,18.98-47.03H33.7C15.09,0,0,15.09,0,33.7v72.56 c0,18.61,15.09,33.7,33.7,33.7h50.83V75.41z"/> <path class="lestilleuls-logo-st0" d="M126.19,44.95c0-2.1-0.53-3.71-1.59-4.84c-1.06-1.13-2.37-1.69-3.92-1.69c-1.59,0-2.9,0.56-3.95,1.67 c-1.05,1.11-1.57,2.74-1.57,4.87c0,2.1,0.51,3.71,1.55,4.84c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69 C125.64,48.66,126.19,47.05,126.19,44.95z"/> <path class="lestilleuls-logo-st0" d="M96.63,114.69l0,25.27h9.63c18.61,0,33.7-15.09,33.7-33.7V93.61C128.86,105.36,113.64,113.18,96.63,114.69z" /> <path class="lestilleuls-logo-st0" d="M60.78,32.36c-1.59,0-2.9,0.56-3.95,1.67c-1.05,1.11-1.57,2.73-1.57,4.87c0,2.1,0.51,3.71,1.55,4.84 c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69c1.09-1.13,1.64-2.74,1.64-4.84c0-2.1-0.53-3.71-1.59-4.84 C63.64,32.92,62.34,32.36,60.78,32.36z"/> <path class="lestilleuls-logo-st0" d="M90.58,17.62c-1.59,0-2.9,0.56-3.95,1.67c-1.05,1.11-1.57,2.73-1.57,4.86c0,2.1,0.51,3.71,1.55,4.84 c1.03,1.13,2.32,1.69,3.88,1.69c1.55,0,2.88-0.56,3.97-1.69c1.09-1.13,1.64-2.74,1.64-4.84c0-2.1-0.53-3.71-1.59-4.84 C93.44,18.19,92.13,17.62,90.58,17.62z"/> </g> </g> </g> </svg> </a></div> </div> </div> <div class="doc-sidebar-highlight"> <div class="ui-highlights"> <div class="ui-highlight-item ui-highlight-hidden"> <div class="ui-highlight-carbon"> <script defer async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CKYILK3J&placement=symfonycom" id="_carbonads_js"></script> </div> </div> </div> </div> <div class="ui-highlights"> <div class="ui-highlight-item ui-highlight-hidden"> <div class="ui-highlight-symfony"> <a href="https://certification.symfony.com/?utm_source=ad&utm_medium=banner&utm_campaign=certification&utm_content=symfonycertified"> <img loading="lazy" src="/images/network/sf7certif_02.webp" height="100" width="130" alt="Online exam, become Symfony certified today" /> </a> <p class="ui-highlight-symfony-text"> <a href="https://certification.symfony.com/?utm_source=ad&utm_medium=banner&utm_campaign=certification&utm_content=symfonycertified">Online exam, become Symfony certified today</a> </p> </div> </div> <div class="ui-highlight-item ui-highlight-visible"> <div class="ui-highlight-symfony"> <a href="https://insight.symfony.com/?utm_source=ad&utm_medium=banner&utm_campaign=insight&utm_content=safe"> <img loading="lazy" src="/images/network/sfinsight_02.png" height="100" width="130" alt="Be safe against critical risks to your projects and businesses" /> </a> <p class="ui-highlight-symfony-text"> <a href="https://insight.symfony.com/?utm_source=ad&utm_medium=banner&utm_campaign=insight&utm_content=safe">Be safe against critical risks to your projects and businesses</a> </p> </div> </div> </div> </div> </aside> </div> </div> </main> <footer> <h2 class="visually-hidden">Symfony footer</h2> <div class="footer-content"> <section class="footer-top-wrapper"> <div class="ui-page-container ui-page-container-wide"> <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 Karel Souffriau, a Symfony contributor" src="https://www.gravatar.com/avatar/61b432cc6714a925bbefc75505afdd3f?size=48&rating=g&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> Karel Souffriau </strong> for being a Symfony contributor </p> <p class="mb-1"> <span role="tooltip" aria-label="4 commits"> <strong>4</strong> commits</span> • <span role="tooltip" aria-label="14 lines of code/doc changed"><strong>14</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 ui-page-container-wide"> <div class="footer-bottom"> <p class="mb-3"> <b>Symfony</b>™ 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 & Screenshots </a> </li> <li class="" role="menuitem"> <a href="/license"> Trademark & 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&utm_medium=symfony_footer&utm_campaign=permanent_referral"> Training </a> </li> <li class="" role="menuitem"> <a href="https://university.sensiolabs.com/e-learning-platform?utm_source=symfony&utm_medium=symfony_footer&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 & 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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&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&utm_medium=symfony_footer&utm_campaign=permanent_referral"> SensioLabs services </a> </li> <li class="" role="menuitem"> <a href="https://sensiolabs.com/training?utm_source=symfony&utm_medium=symfony_footer&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&utm_medium=symfonycom_footer&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="/_components/Search" id="live-2308103015-0" data-live-props-value="{"query":null,"@attributes":{"id":"live-2308103015-0"},"@checksum":"T8w3JMMlYNTMVShvf\/H5DoH+tLNjpWjA5vhKHU9v+GQ="}"> <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>