<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
>
    <channel>
        <title>Symfony Blog</title>
        <atom:link href="https://feeds.feedburner.com/symfony/blog" rel="self" type="application/rss+xml" />
        <link>https://symfony.com/blog/</link>
        <description>Most recent posts published on the Symfony project blog</description>
        <pubDate>Wed, 09 Sep 2026 11:14:56 +0200</pubDate>
        <lastBuildDate>Wed, 09 Sep 2026 11:00:00 +0200</lastBuildDate>
        <language>en</language>
                        <item>
            <title><![CDATA[SymfonyCon Warsaw 2026: PHP wasn't supposed to do that]]></title>
            <link>https://symfony.com/blog/symfonycon-warsaw-2026-php-wasn-t-supposed-to-do-that?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>
    


We are thrilled to announce that SymfonyCon Warsaw 2026 will take place on November 26 and 27, 2026, in Warsaw (Poland)! Join us for a great worldwide conference with 3 parallel tracks and community events.



🎤 Speaker announcement

We are delighted…</description>
            <content:encoded><![CDATA[
                                <p><a class="block text-center" href="https://live.symfony.com/2026-warsaw-con" title="Nl Blog Banner">
    <img src="https://symfony.com/uploads/assets/blog/NL-BLOG-Banner.png" alt="Nl Blog Banner">
</a></p>

<p>We are thrilled to announce that <strong><a href="https://live.symfony.com/2026-warsaw-con/">SymfonyCon Warsaw 2026</a></strong> will take place on November 26 and 27, 2026, in Warsaw (Poland)! Join us for a great worldwide conference with 3 parallel tracks and community events.</p>

<hr />

<h3>🎤 Speaker announcement</h3>

<p>We are delighted to welcome <strong><a href="https://connect.symfony.com/profile/hyanda">Felix Eymonot</a></strong>, Lead Dev, Bludevon for his talk <strong><a href="https://live.symfony.com/2026-warsaw-con/schedule/why-ai-output-is-the-new-xss">"PHP wasn't supposed to do that"</a></strong>:</p>

<p>"To build a website, we used PHP. To build a mobile application, we used something else.
It was a simple rule. Almost self-evident.</p>

<p>Then one day, a request arrived, the kind every team eventually hears:
"The website is great. Now we need a mobile app."</p>

<p>From there the script is usually familiar: new technologies, new skills, new hires, new lines in a README nobody will read.</p>

<p>But what if, this time, the story could unfold differently?</p>

<p>In this talk, I'll show how Symfony UX Native quietly bends what we thought was an immovable line between web and mobile.
Through concrete demos, we'll see how a single Symfony codebase (Twig templates, Doctrine entities, Form types, all of it ) turns into a real iOS and Android application via Hotwire Native.
We'll write a bridge component live. We'll watch ux_is_native() reshape a single template for two surfaces. We'll talk honestly about architecture, developer experience, the limits of the approach, the use cases where it genuinely shines, and the questions every PHP developer asks the first time they see it work.</p>

<p>After Twig Components and Live Components, this is perhaps the next chapter of the story: when Symfony leaves the browser and installs itself on the home screen of your users' phones.</p>

<p>Because in the end, the surprising thing isn't that a mobile application can be built with Symfony. The surprising thing is that it's starting to feel perfectly logical, even though PHP wasn't supposed to do that.</p>

<p>(PS: No PHP developer was harmed, or forced to learn Swift, during the preparation of this talk.)"</p>

<p>Click here to see more <strong><a href="https://live.symfony.com/2026-warsaw-con/schedule">talks</a></strong>. The full schedule will be unveiled step-by-step over the coming weeks. Stay tuned!</p>

<h3>Ready to join us?</h3>

<h3>🏨 Accommodation</h3>

<p>The official conference hotel offers special preferential rates and flexible conditions for our attendees. Make sure to use our <strong><a href="https://www.hilton.com/en/book/reservation/rooms/?ctyhocn=WAWHIHI&amp;arrivalDate=2026-11-23&amp;departureDate=2026-11-29&amp;groupCode=GSYMDP&amp;room1NumAdults=1">dedicated link</a></strong> to book your room and stay right where the action happens!</p>

<h3>🥳 Save the date for the Community Party!</h3>

<p>Because SymfonyCon isn't just about code, we are happy to confirm that our traditional Community Party will take place on the evening of <strong>Thursday, November 26</strong>. Get ready for a great night of networking, fun, and connecting with peers!</p>

<h3>💻 Hackday</h3>

<p>Ready to contribute? The Hackday on <strong>Saturday, November 28</strong> (free and open to all!) will take place at "The Brain Embassy - Czackiego" thanks to the support of <a href="https://baksla.sh/">Baksla.sh</a>. Bring your laptop and your good mood!</p>

<h3>🎟️ Get your tickets</h3>

<p>Regular tickets are available now and for the <strong>next 14 days only! <a href="https://live.symfony.com/2026-warsaw-con/registration">Secure your ticket today</a></strong></p>

<hr />

<h3>Join us online!</h3>

<p>💡Follow the "conference" blog posts to not miss anything!</p>

<p>Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎</p>

<p><a class="block text-center" href="https://linktr.ee/symfony">
   <img src="https://symfony.com/uploads/assets/blog/Banner-BLOG.png" alt="Banner Blog">
</a></p>

                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/symfonycon-warsaw-2026-php-wasn-t-supposed-to-do-that?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Eloïse Charrier ]]></dc:creator>
            <pubDate>Wed, 09 Sep 2026 11:00:00 +0200</pubDate>
            <comments>https://symfony.com/blog/symfonycon-warsaw-2026-php-wasn-t-supposed-to-do-that?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[SymfonyCon Warsaw 2026: Unveiling the workshop lineup!]]></title>
            <link>https://symfony.com/blog/symfonycon-warsaw-2026-unveiling-the-workshop-lineup?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>
    


We are counting down to SymfonyCon Warsaw 2026, taking place on November 26-27, 2026, in Warsaw (Poland)! Get ready for a week full of workshops, sessions, and community magic.

Great news today: all workshops are now online and open for registration!…</description>
            <content:encoded><![CDATA[
                                <p><a class="block text-center" href="https://live.symfony.com/2026-warsaw-con" title="Nl Blog Banner">
    <img src="https://symfony.com/uploads/assets/blog/NL-BLOG-Banner.png" alt="Nl Blog Banner">
</a></p>

<p>We are counting down to <strong><a href="https://live.symfony.com/2026-warsaw-con/">SymfonyCon Warsaw 2026</a></strong>, taking place on November 26-27, 2026, in Warsaw (Poland)! Get ready for a week full of workshops, sessions, and community magic.</p>

<p>Great news today: all workshops are now online and open for registration! 👉 <strong><a href="https://live.symfony.com/2026-warsaw-con/workshop">Check out the full list of workshops and register today!</a></strong></p>

<hr />

<h3>🎓 Unveiling the workshop lineup</h3>

<p>Want to level up your skills before the main conference? Join us on <strong>November 24 &amp; 25</strong> for our intensive, hands-on workshops led by industry experts.</p>

<p>Whether you're looking for a 2-day deep dive or a focused 1-day track, here is the full schedule:</p>

<h4>🗓️ 2-day workshops (Nov 24 – 25)</h4>

<ul>
<li>🚀 <strong>Symfony 8: the fast track</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/tiriel">Benjamin Zaslavsky</a><br />
Build a production-ready application from scratch using Symfony 8.1 idioms, Zero-Node Frontends (Symfony UX &amp; AssetMapper), native AI integration, and Upsun deployments.</li>
<li>☸️ <strong>Kubernetes deployment for Symfony</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/tucksaun">Tugdual Saunier</a><br />
Go from a simple single-pod setup to an almost production-ready Kubernetes deployment tailored for Symfony applications.</li>
</ul>

<h4>🗓️ 1-day workshops — Tuesday, November 24</h4>

<ul>
<li>🏗️ <strong>Refactoring Towards Clean Architecture</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/ddziaduch">Damian Dziaduch</a><br />
Transform legacy Symfony codebases into maintainable, resilient applications using SOLID principles, Dependency Inversion, and boundary separation.</li>
<li>🗄️ <strong>Doctrine ORM: Deep Dive</strong><br />
Trainers: <a href="https://connect.symfony.com/profile/dbrumann">Denis Brumann</a> &amp; <a href="https://connect.symfony.com/profile/cadien">Oliver Kossin</a><br />
Explore current best practices, breaking changes, and advanced features in Doctrine ORM &amp; DBAL through practical exercises.</li>
<li>🤖 <strong>Symfony AI - Discover The New Ecosystem</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/sllupa">Stiven Llupa</a><br />
Dive into Symfony’s new AI ecosystem to build simple AI features and complex agentic workflows in PHP.</li>
<li>🎨 <strong>Deep dive into Symfony UX</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/dbu">David Buchmann</a><br />
Master Twig, Hotwire Turbo, Stimulus, and Live Components to build rich frontends with minimal JavaScript.</li>
<li>🕵️ <strong>Becoming the Godfather of Threat Modeling</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/mikevanderbijl">Mike Vanderbijl</a><br />
Learn how to anticipate security risks, identify application vulnerabilities, and build a proactive defense mindset.</li>
</ul>

<h4>🗓️ 1-day workshops — Wednesday, November 25</h4>

<ul>
<li>🧠 <strong>Refactor yourself - you are (not) a machine</strong><br />
Trainer: <a href="https://live.symfony.com/2026-warsaw-con/workshop/refactor-yourself-you-are-not-a-machine-2">Peter Dietrich</a><br />
A non-technical workshop using developer metaphors and Gestalt therapy principles to help you uncover behavioral patterns and stop self-sabotage.</li>
<li>📊 <strong>Making Your Symfony App Observable Without the Pain</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/alexandre-daubois">Alexandre Daubois</a><br />
Leverage FrankenPHP and runtime signals to set up reliable, real-time production observability in minutes.</li>
<li>🔒 <strong>Level Up Your Symfony Security</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/spomky_">Florent Morselli</a><br />
Reinforce your application's security, harden authentication strategies, and audit existing security flows.</li>
<li>🧪 <strong>Test Driven Development the Right Way</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/mollokhan">Diego Aguiar</a><br />
Demystify TDD with PHPUnit, learn the Arrange-Act-Assert pattern, and speed up your development workflow.</li>
<li>🧩 <strong>Unlock the Power of Sulu 3: Go Beyond the CMS Basics</strong><br />
Trainer: <a href="https://connect.symfony.com/profile/cadien">Oliver Kossin</a><br />
Extend Sulu 3 with custom Symfony bundles, build advanced features, and explore Sulu.AI.</li>
</ul>

<p>Seats are limited to maintain small group interactions, so make sure to reserve your spot early! <strong><a href="https://live.symfony.com/2026-warsaw-con/workshop">Check out the full list of workshops and register today!</a></strong></p>

<h3>Ready to join us?</h3>

<h3>🏨 Accommodation</h3>

<p>The official conference hotel offers special preferential rates and flexible conditions for our attendees. Make sure to use our <strong><a href="https://www.hilton.com/en/book/reservation/rooms/?ctyhocn=WAWHIHI&amp;arrivalDate=2026-11-23&amp;departureDate=2026-11-29&amp;groupCode=GSYMDP&amp;room1NumAdults=1">dedicated link</a></strong> to book your room and stay right where the action happens!</p>

<h3>🥳 Save the date for the Community Party!</h3>

<p>Because SymfonyCon isn't just about code, we are happy to confirm that our traditional Community Party will take place on the evening of <strong>Thursday, November 26</strong>. Get ready for a great night of networking, fun, and connecting with peers!</p>

<h3>💻 Hackday</h3>

<p>Ready to contribute? The Hackday on <strong>Saturday, November 28</strong> (free and open to all!) will take place at "The Brain Embassy - Czackiego" thanks to the support of <a href="https://baksla.sh/">Baksla.sh</a>. Bring your laptop and your good mood!</p>

<h3>🎟️ Get your tickets</h3>

<p>Regular tickets are available now, but don't wait too long, it's only up to September 23rd. <strong><a href="https://live.symfony.com/2026-warsaw-con/registration">Secure your ticket today!</a></strong></p>

<hr />

<h3>Join us online!</h3>

<p>💡 Follow the "conference" blog posts to not miss anything!</p>

<p>Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎</p>

<p><a class="block text-center" href="https://linktr.ee/symfony">
    <img src="https://symfony.com/uploads/assets/blog/Banner-BLOG.png" alt="Banner Blog">
</a></p>

                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/symfonycon-warsaw-2026-unveiling-the-workshop-lineup?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Eloïse Charrier ]]></dc:creator>
            <pubDate>Mon, 07 Sep 2026 17:35:00 +0200</pubDate>
            <comments>https://symfony.com/blog/symfonycon-warsaw-2026-unveiling-the-workshop-lineup?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[A Week of Symfony #1027 (August 31 – September 6, 2026)]]></title>
            <link>https://symfony.com/blog/a-week-of-symfony-1027-august-31-september-6-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>This week, Symfony 6.4.45, 7.4.18, and 8.1.6 were released with numerous bug fixes and hardening improvements. Meanwhile, we introduced symfony lsp:check, a new command that brings Symfony-aware diagnostics to your CI pipeline, catching unknown routes, missing…</description>
            <content:encoded><![CDATA[
                                <p>This week, Symfony <a href="https://symfony.com/blog/symfony-6-4-45-released">6.4.45</a>, <a href="https://symfony.com/blog/symfony-7-4-18-released">7.4.18</a>, and <a href="https://symfony.com/blog/symfony-8-1-6-released">8.1.6</a> were released with numerous bug fixes and hardening improvements. Meanwhile, we introduced <a href="https://symfony.com/blog/introducing-symfony-lsp-check-symfony-aware-diagnostics-in-your-ci">symfony lsp:check</a>, a new command that brings Symfony-aware diagnostics to your CI pipeline, catching unknown routes, missing templates, and configuration errors. Finally, we announced that you'll be able to meet the <a href="https://symfony.com/blog/meet-the-symfony-core-team-at-the-api-platform-conference-2026">Symfony Core Team at the API Platform Conference 2026</a> in Lille on September 17–18.</p>

<h2>Symfony development highlights</h2>

<p>This week, 191 pull requests were merged (158 in code and 33 in docs) and 44 issues were closed (25 in code and 19 in docs). Excluding merges, 58 authors made additions and deletions. See details for <a href="https://github.com/symfony/symfony/pulse">code</a> and <a href="https://github.com/symfony/symfony-docs/pulse">docs</a>.</p>

<p><a href="https://github.com/symfony/symfony/commits/6.4">6.4 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/d8f8099b4e651ba6f1796e81bedc5879f0817d41">d8f8099</a>: &#91;Form&#93; stop capturing Options in the upload_max_size_message closure</li>
<li><a href="https://github.com/symfony/symfony/commit/892055e5d9cba5ccc460356544acb8969ff1d292">892055e</a>: &#91;FrameworkBundle&#93; describe the webhook routing secret in the config reference</li>
<li><a href="https://github.com/symfony/symfony/commit/4309470d3d4d3d85f9620ad9d421baed64cb3d28">4309470</a>: &#91;Mailer&#93; mark the Sendgrid webhook secret as sensitive</li>
<li><a href="https://github.com/symfony/symfony/commit/075471fd76c1c65599dfad1e3860092277c999d9">075471f</a>: &#91;Notifier&#93; reject an empty secret in the Twilio webhook parser</li>
<li><a href="https://github.com/symfony/symfony/commit/5c090b929db63a1f95b638109c591a8320adb257">5c090b9</a>: &#91;Webhook&#93; reject a malformed request body with a 406 instead of a 500</li>
<li><a href="https://github.com/symfony/symfony/commit/9f411739ae19fd9bc514c8eb3c4fa1779944aa9e">9f41173</a>: &#91;Mime&#93; do not treat an "@" inside the domain as the addr-spec separator</li>
<li><a href="https://github.com/symfony/symfony/commit/7420a8d080fed192e07a4fc1a4bdf54338477f25">7420a8d</a>: &#91;Mailer, Sendgrid&#93; verify the webhook signature before parsing the payload</li>
<li><a href="https://github.com/symfony/symfony/commit/7a5183ef75ae7ad6060cc62b329069b4ed67f112">7a5183e</a>: &#91;HttpFoundation&#93; match paths with the DOTALL modifier</li>
<li><a href="https://github.com/symfony/symfony/commit/cb3064829369fa2c2cb758aad94f11aa84f39bbd">cb30648</a>: &#91;Notifier, Vonage&#93; verify the payload_hash claim of signed webhooks</li>
<li><a href="https://github.com/symfony/symfony/commit/26456f2782e1c16bf79ac45f16a2f7b5cb41a520">26456f2</a>: &#91;Mime&#93; never emit a raw control character in a header</li>
<li><a href="https://github.com/symfony/symfony/commit/3e261610b9b43aaba7dbb1e28c1ce41f7aa41dd1">3e26161</a>: &#91;Messenger&#93; fix a crash when a Redis stream entry is not a JSON object</li>
<li><a href="https://github.com/symfony/symfony/commit/5230b7482fedd6b57de2aaddb07c1cfa6a5fcee6">5230b74</a>: &#91;Console&#93; test the shell completion scripts and fix the escaping</li>
<li><a href="https://github.com/symfony/symfony/commit/543938113491d8dc7b14c481506e6aff152c7e05">5439381</a>: &#91;Process&#93; use an absolute path for the cmd.exe fallback on Windows</li>
<li><a href="https://github.com/symfony/symfony/commit/d5eef83f3e1e657b6fa820a66146c9af9405d8c2">d5eef83</a>: &#91;Form&#93; accept UTC-equivalent timezones for date and time model data</li>
<li><a href="https://github.com/symfony/symfony/commit/8d7540c79670ebf89d5ca6ee97ee2ddcc0380828">8d7540c</a>: &#91;Finder&#93; fix prune filters not applied to nested directories and with path excludes</li>
<li><a href="https://github.com/symfony/symfony/commit/f94fd8f643e96d0e481dc464ccfa7921205ce34f">f94fd8f</a>: &#91;Console&#93; fix the bash completion on macOS and cover more option modes</li>
<li><a href="https://github.com/symfony/symfony/commit/283abf94fe12558f2b49d633a80e510da074d4bb">283abf9</a>: &#91;Console&#93; fix the bash completion of "--option=value" and of an aliased command</li>
<li><a href="https://github.com/symfony/symfony/commit/ce4f4400b42d77c69ed295cd972eea5e1242ee17">ce4f440</a>: &#91;Console&#93; do not evaluate the command line in the zsh completion</li>
<li><a href="https://github.com/symfony/symfony/commit/4fd61ee5e03300b06276ce35b1b0d3134f345be5">4fd61ee</a>: &#91;WebProfilerBundle&#93; fix a TypeError when the ajax toolbar panel is missing from the page</li>
<li><a href="https://github.com/symfony/symfony/commit/788ace93e85f8cca48bee7606bbd5667f8943e98">788ace9</a>: &#91;String&#93; fix singularization of words ending in -ives</li>
<li><a href="https://github.com/symfony/symfony/commit/4c18bb541337b2c749dacece9bd4ca43f9152c71">4c18bb5</a>: &#91;HttpFoundation&#93; fix hitting the PCRE size limit with many trusted host patterns</li>
<li><a href="https://github.com/symfony/symfony/commit/cb0d4023548fe90bcbe5f8e0737c9ca815ce6826">cb0d402</a>: &#91;PropertyInfo&#93; do not prefer a method returning the declaring class as the property accessor</li>
<li><a href="https://github.com/symfony/symfony/commit/7ae77cadba438f0f700dc1a2d2c53efa93abe2e4">7ae77ca</a>: &#91;Mime&#93; reject header names containing non-printable or non-ASCII characters</li>
<li><a href="https://github.com/symfony/symfony/commit/701c938d0b38859418b986f1166e08c97155334e">701c938</a>: &#91;HtmlSanitizer&#93; drop relative URLs whose first path segment contains a colon instead of throwing</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/7.4">7.4 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/6285a433d2ade2c41e980c0fb0b7713ecf486ebd">6285a43</a>: &#91;Mailer, Notifier&#93; mark webhook secrets as sensitive</li>
<li><a href="https://github.com/symfony/symfony/commit/8c84e00a5a505d53b6833511e3576acb23234cb4">8c84e00</a>: &#91;Mailer, Notifier&#93; reject an empty secret in the AhaSend, Mailchimp and Sweego webhook parsers</li>
<li><a href="https://github.com/symfony/symfony/commit/e0f5a76e51041afad99fd13fca9b76ae07040532">e0f5a76</a>: &#91;Mailer&#93; reject an empty secret in the Mailtrap, MailerSend and Sweego webhook parsers</li>
<li><a href="https://github.com/symfony/symfony/commit/379180156a8c0ee8c081857d5dbdc73d5ef977d7">3791801</a>: &#91;Mailer, Notifier&#93; verify webhook signatures before parsing the payload</li>
<li><a href="https://github.com/symfony/symfony/commit/21241f106e647435eab51dd7730ea5ebdab7f4b8">21241f1</a>: &#91;JsonStreamer&#93; fix generator stream exhaustion on chunked file reading</li>
<li><a href="https://github.com/symfony/symfony/commit/1ebccec299a0a0dfecea0b8e35492b94d78c4371">1ebccec</a>: &#91;Notifier&#93; fix typo in Bluesky transport exception message</li>
<li><a href="https://github.com/symfony/symfony/commit/7a7cb115db9c8f3ee291b51130f33663f4ac03df">7a7cb11</a>: &#91;String&#93; fix localeTitle() titlecasing only the first word when the locale has no transliterator</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/8.1">8.1 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/177a6c75771cb26df6c86d37c8275fb6dcb64134">177a6c7</a>: &#91;VarDumper&#93; fix dumping class names to the dump server</li>
<li><a href="https://github.com/symfony/symfony/commit/75ee90662d0a0feb952ad63be43c15512e810fb2">75ee906</a>: &#91;Scheduler&#93; fix duplicated schedule message when multiple methods in a class use #[AsCronTask]</li>
<li><a href="https://github.com/symfony/symfony/commit/00d15052a33fe38a774b81dc28e68aa131908a6c">00d1505</a>: &#91;Console&#93; fix signal handling of invokable commands registered through the container</li>
<li><a href="https://github.com/symfony/symfony/commit/7c52a22c6dd8934ce5c4ffdfeb05d8d6e1766c37">7c52a22</a>: &#91;Console&#93; make method-level #[AsCommand] names relative to the class-level one</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/8.2">8.2 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/4393cdb510cd84b8ffbaedbf15fca9c8cd480f96">4393cdb</a>: &#91;Mailer&#93; reject an empty secret in the Azure webhook parser</li>
<li><a href="https://github.com/symfony/symfony/commit/647af27c727b3cf3b236943bf2cc52fa6a389376">647af27</a>: &#91;Mailer, Mime&#93; update the RFC references and document what Address validates</li>
<li><a href="https://github.com/symfony/symfony/commit/4ebe3e5333536ea23629776551978efb3c387076">4ebe3e5</a>: &#91;FrameworkBundle&#93; add "framework.webhook.no_private_network" and "framework.webhook.http_client" options</li>
<li><a href="https://github.com/symfony/symfony/commit/50b0d814101429b2d7694572bd58767a67f9a5f9">50b0d81</a>: &#91;Messenger&#93; support raw Redis stream messages</li>
<li><a href="https://github.com/symfony/symfony/commit/5605faf6997cbb60bb73da6d710d4ad90f2a2501">5605faf</a>: &#91;Mailer, Notifier&#93; deprecate reading a non-boolean value with Dsn::getBooleanOption()</li>
<li><a href="https://github.com/symfony/symfony/commit/bce08b3b6561264a2e1347dea823c97d55a08800">bce08b3</a>: &#91;Mailer&#93; support tags in the MailerSend transports</li>
<li><a href="https://github.com/symfony/symfony/commit/07709d2862ccf7960c76ea7d9651d63a8cea0d1f">07709d2</a>: &#91;Lock, Messenger, Notifier&#93; add the "ssl" DSN option to select the HTTP scheme</li>
<li><a href="https://github.com/symfony/symfony/commit/d09510b61d662f10fefe773d60338e31c83dd677">d09510b</a>: &#91;Form&#93; add the "form.post_validate" event</li>
<li><a href="https://github.com/symfony/symfony/commit/81fb59ecb10c6d2db0cc58db78906820d9be20b3">81fb59e</a>: &#91;Tui&#93; add KeyBindingWidget</li>
<li><a href="https://github.com/symfony/symfony/commit/99f824ce4e2e28e8a9d6c43288ea36680ab56898">99f824c</a>: &#91;Tui&#93; add CollapsibleWidget</li>
<li><a href="https://github.com/symfony/symfony/commit/e2fda34cd5a45776b1f1c346ae9d5fd8652ef977">e2fda34</a>: &#91;Tui&#93; keep a widget's listeners across detach, and add off() to release them</li>
<li><a href="https://github.com/symfony/symfony/commit/262451ab68c37aced5905057855d7878f0bbcad3">262451a</a>: &#91;Security&#93; add an OIDC Authorization Code Flow authenticator</li>
<li><a href="https://github.com/symfony/symfony/commit/8144a9f63c0de1140ea77b2922a522bb91919052">8144a9f</a>: &#91;Tui&#93; add tab widget</li>
<li><a href="https://github.com/symfony/symfony/commit/340586bea2522cf64d19f74c27e6bfff3f508023">340586b</a>: &#91;Serializer&#93; support extensible discriminator map via child attribute</li>
<li><a href="https://github.com/symfony/symfony/commit/57d450bcafed6f97c6b01697b5640474640ec2ad">57d450b</a>: &#91;Form&#93; use the POST_VALIDATE event in PasswordHasherExtension</li>
<li><a href="https://github.com/symfony/symfony/commit/6d46a243da07e761163b0d24008d50ac9638c69b">6d46a24</a>: &#91;Mailer, Mime&#93; add RFC 6854 group support to mailbox list headers</li>
<li><a href="https://github.com/symfony/symfony/commit/5617fa0ef9bf67658e8f1534a8c680ea7f2e453b">5617fa0</a>: &#91;Messenger&#93; add claim check support</li>
<li><a href="https://github.com/symfony/symfony/commit/0449d5ca08a0b6871ff5878c8ad53eda80c9e4d3">0449d5c</a>: &#91;Yaml, FrameworkBundle&#93; add JSON Schema validation to the lint:yaml command</li>
<li><a href="https://github.com/symfony/symfony/commit/f3c0b6a36fb15eb0b1a9022ee1a9409c0c3ecb2a">f3c0b6a</a>: &#91;HttpKernel, RateLimiter&#93; add option to expose X-RateLimit-* headers for the #[RateLimit] attribute</li>
<li><a href="https://github.com/symfony/symfony/commit/fd64a4618ae54c1cbbbf87bc8bc1359b084611e1">fd64a46</a>: &#91;Messenger&#93; add AMPHP SQL messenger transport</li>
<li><a href="https://github.com/symfony/symfony/commit/9fb98ad38bb5942b68c3233a8817b2990053eca6">9fb98ad</a>: &#91;Messenger&#93; add SQS system attributes of received messages to AmazonSqsReceivedStamp</li>
<li><a href="https://github.com/symfony/symfony/commit/4612d33d382afee84d5ce13908cacbf60f626235">4612d33</a>: &#91;Finder&#93; add root-relative directory excludes via / prefix in exclude()</li>
<li><a href="https://github.com/symfony/symfony/commit/d2be782460e0574781ead6a2bfbce2c3704b31af">d2be782</a>: &#91;FrameworkBundle&#93; remove dev requirement on symfony/amp-sql-messenger</li>
<li><a href="https://github.com/symfony/symfony/commit/a6d9bac6559739c815f2e891021c70c97048baba">a6d9bac</a>: &#91;Config, FrameworkBundle, Yaml&#93; fix schema violation lines and the list form of keyed maps</li>
<li><a href="https://github.com/symfony/symfony/commit/03097eaa517771984275b82eb52fda702d22a658">03097ea</a>: &#91;Console&#93; declare docblock types for parameters of addArgument() and addOption()</li>
<li><a href="https://github.com/symfony/symfony/commit/0f33c88384b3b6fb07a0d841438bb17eee6eff05">0f33c88</a>: &#91;Security&#93; add OIDC token-endpoint client authentication methods</li>
<li><a href="https://github.com/symfony/symfony/commit/f80cfe393c41fd0989bc8d006e21437a6238763b">f80cfe3</a>: &#91;SecurityBundle&#93; always register the OIDC login callback route loader</li>
<li><a href="https://github.com/symfony/symfony/commit/0ae9a49b58d2a997c9a06e45fa18f89cd84aa0c3">0ae9a49</a>: &#91;Yaml&#93; walk the document to resolve schema violation lines</li>
<li><a href="https://github.com/symfony/symfony/commit/7b082272faff008b454d494a136e09dbccf713a8">7b08227</a>: &#91;Translation&#93; add translation:update-xliff-sources command</li>
<li><a href="https://github.com/symfony/symfony/commit/3798b586c8ead36281569b0d188d323b89e4172c">3798b58</a>: &#91;Form&#93; add #[AsFormType] and #[FormField] attributes to define form types on data classes</li>
<li><a href="https://github.com/symfony/symfony/commit/eae2b16da32b45203781cdadf4a272f2ed125805">eae2b16</a>: &#91;Security&#93; verify the OIDC ID token signature against the provider JWKS</li>
<li><a href="https://github.com/symfony/symfony/commit/a7e7eb881382cf6faa6e2c65e9c56d870c9ebe41">a7e7eb8</a>: &#91;SecurityBundle&#93; require the OIDC ID token signature verification for public clients</li>
<li><a href="https://github.com/symfony/symfony/commit/f3509f037a6e68d9829dd8946ca79433e6c3dc96">f3509f0</a>: &#91;Security, SecurityBundle&#93; add OIDC PKCE, max_age, authorization-request and start-route options</li>
<li><a href="https://github.com/symfony/symfony/commit/3f964558364b209a01241cf33d9a16f2a266363a">3f96455</a>: &#91;Security, SecurityBundle&#93; add OIDC claims source, user-identifier mapping and RP-Initiated Logout</li>
<li><a href="https://github.com/symfony/symfony/commit/cdc6c0be09d63cbdcd637d51f468fba28474d500">cdc6c0b</a>: &#91;Messenger&#93; force quit messenger:consume and messenger:failed:retry on repeated SIGINT</li>
<li><a href="https://github.com/symfony/symfony/commit/d991fc9895fe4a52ed9f69fad6e24b11b6c0cbab">d991fc9</a>: &#91;Security&#93; allow AuthorizationChecker::isGrantedForUser to check for guest permissions</li>
<li><a href="https://github.com/symfony/symfony/commit/718e28121e5b3451a109543bfbc3efb2df2db9fc">718e281</a>: &#91;Mailer&#93; add RemoteTemplateEmail to send emails rendered from provider-hosted templates</li>
<li><a href="https://github.com/symfony/symfony/commit/7ab6d431f762c21bbd3f841ed6aa5b709d872c66">7ab6d43</a>: &#91;Mailer&#93; add RemoteTemplateEmail support to the remaining bridges with provider-hosted templates</li>
<li><a href="https://github.com/symfony/symfony/commit/3370aa2f5d23d4cddeb842cf6f3b3fa8f5d766c8">3370aa2</a>: &#91;Form&#93; add an allow_array_submission option to let PRE_SUBMIT listeners transform submitted arrays</li>
<li><a href="https://github.com/symfony/symfony/commit/68f2352bc989d673535c2a0aec06c16fbe48d9a1">68f2352</a>: &#91;Filesystem&#93; deprecate passing an empty string as the base path to Path::isBasePath()</li>
<li><a href="https://github.com/symfony/symfony/commit/c820a90678107a9f300c838341a643a979f4e666">c820a90</a>: &#91;Cache&#93; add MongoDB cache adapters</li>
<li><a href="https://github.com/symfony/symfony/commit/2f261707fc191ece40303acb82a3a674440b8eb6">2f26170</a>: &#91;Security&#93; tell why an authenticator did not support the request in the profiler</li>
<li><a href="https://github.com/symfony/symfony/commit/9f992bb022413be1feb4ec33d1db21853fff215a">9f992bb</a>: &#91;Cache, Lock, Messenger&#93; track the Symfony component in the MongoDB driver handshake</li>
<li><a href="https://github.com/symfony/symfony/commit/77eda6f94d9493d59676fa13cd8657424249bf0d">77eda6f</a>: &#91;RateLimiter&#93; stop consuming from the remaining limiters once one rejects the hit</li>
<li><a href="https://github.com/symfony/symfony/commit/4520f5e0b16ef0ef11ee6f92207a53e89f5ca135">4520f5e</a>: &#91;RateLimiter&#93; allow overriding the key of a compound limiter's sub-limiters</li>
<li><a href="https://github.com/symfony/symfony/commit/470440a590da9af1b47b6a3ef619b4896bd8bba4">470440a</a>: &#91;Mailer&#93; add PufferPost bridge</li>
<li><a href="https://github.com/symfony/symfony/commit/e74789520e3000792f5d3277eab3f39b967d8399">e747895</a>: &#91;Messenger&#93; add routing information to the debug:messenger command</li>
<li><a href="https://github.com/symfony/symfony/commit/4deeb4f12ca18610fa2d2687abca56b572c8d8d9">4deeb4f</a>: &#91;Security&#93; deprecate passing more than one attribute to AccessDecisionManager::decide()</li>
<li><a href="https://github.com/symfony/symfony/commit/ecf1cb667eafbbed6b775035a5d847f18e5d03e5">ecf1cb6</a>: &#91;String&#93; add a $regexp argument to the case conversion methods</li>
<li><a href="https://github.com/symfony/symfony/commit/e15471327f1270b3cdee6fe47fd4905bcdb56866">e154713</a>: &#91;Security&#93; add a current_user() function to the expression language provider</li>
<li><a href="https://github.com/symfony/symfony/commit/cda910271bef78cf10725bd72b39c707022fa31a">cda9102</a>: &#91;String&#93; fix ByteString::title() titlecasing only the first word of a match</li>
</ul>

<h2>Newest issues and pull requests</h2>

<ul>
<li><a href="https://github.com/symfony/symfony/pull/65825">[Console] Add docker-style sub-commands, resolved as command trees from registered names</a></li>
<li><a href="https://github.com/symfony/symfony/pull/65853">[Console] Register class-level #[AsCommand] groups and let the attribute list options</a></li>
</ul>

<h2>Symfony Jobs</h2>

<p>These are some of the most recent Symfony job offers:</p>

<ul>
<li><strong>Symfony Developer</strong> at Steward<br>
Part-time / Temporary - $8,700 – $13,000 / month<br>
Full remote<br>
<a href="https://symfony.com/jobs/69885c2">View details</a></li>
<li><strong>Symfony Developer</strong> at ATH<br>
Contract / Freelance - €25 – €50 / hour<br>
Full remote<br>
<a href="https://symfony.com/jobs/4a82fc1">View details</a></li>
</ul>

<p>You can <a href="https://symfony.com/jobs">publish a Symfony job offer for free</a> on symfony.com.</p>

<h2>SymfonyCasts Updates</h2>

<p><a href="https://symfonycasts.com/">SymfonyCasts</a> is the official way to learn Symfony.
Select a track for a guided path through 100+ video tutorial courses about
Symfony, PHP and JavaScript.</p>

<p>This week, SymfonyCasts published the following updates:</p>

<ul>
<li>New course announced: <a href="https://symfonycasts.com/screencast/symfony8-security-extra">Symfony Security: Going Further</a></li>
<li>(Video) <a href="https://symfonycasts.com/screencast/symfony8-security/registration-form">Symfony Security: The Basics: Creating a Registration Form</a></li>
<li>(Video) <a href="https://symfonycasts.com/screencast/symfony8-security/security-events">Symfony Security: The Basics: Security Events: Tracking the Last Login</a></li>
</ul>

<h2>They talked about us</h2>

<ul>
<li><a href="https://clemenskrack.com/articles/precognition-in-symfony-validating-a-request-without-running-the-controller">Precognition in Symfony: validating a request without running the controller</a></li>
<li><a href="https://medium.com/@przemyslaw.rafal.jez/blind-index-searching-an-encrypted-column-without-decrypting-it-9ea572fbcc3a">Blind Index: Searching an Encrypted Column Without Decrypting It</a></li>
<li><a href="https://dev.to/mollenthiel/postgres-rls-in-symfony-with-one-tenant-in-the-fixture-your-isolation-suite-passes-with-no-policy-3h42">Postgres RLS in Symfony: with one tenant in the fixture, your isolation suite passes with no policy at all</a></li>
<li><a href="https://dev.to/outcomer/six-months-later-the-bundle-is-still-alive-257j">Six Months Later, the Bundle Is Still Alive</a></li>
<li><a href="https://dev.to/bosun18/100-line-coverage-did-not-catch-the-one-bug-that-mattered-318a">100% line coverage did not catch the one bug that mattered</a></li>
<li><a href="https://medium.com/@alkinbg/when-http-retries-become-dangerous-idempotency-in-symfony-without-the-fairy-tales-595c9cf81c23">When HTTP Retries Become Dangerous: Idempotency in Symfony Without the Fairy Tales</a></li>
<li><a href="https://awstip.com/when-x-forwarded-for-lies-aka-the-client-ip-problem-behind-cloudfront-aws-waf-and-symfony-236fe7a409e3">When X-Forwarded-For Lies, aka the Client IP Problem Behind CloudFront, AWS WAF and Symfony</a></li>
<li><a href="https://dev.to/gromnan/lautocompletion-zsh-avec-composer-et-symfony-console-5cg">L'autocomplétion zsh avec Composer et Symfony console</a></li>
<li><a href="https://medium.com/@ahmedbhs/frankenphp-ce-que-%C3%A7a-change-et-ce-quil-ne-faut-pas-oublier-843f42c2d1a7">FrankenPHP : ce que ça change, et ce qu’il ne faut pas oublier</a></li>
</ul>

<h2>Upcoming Symfony Events</h2>

<ul>
<li><a href="https://c.sensiolabs.de/events/symfony-php-meetup-cologne-2026?lang=de">Symfony Meetup Köln</a>: Cologne, Germany (September 24, 2026)</li>
<li><a href="https://www.acseo.fr/sylius-france-community-meetup-2026-acseo/">Sylius France Community Meetup by ACSEO</a>: Aix en Provence, France (September 28, 2026)</li>
</ul>

<h2>Call to Action</h2>

<ul>
<li>Follow Symfony <a href="https://x.com/symfony">on X</a>, <a href="https://mastodon.social/@symfony">on Mastodon</a>, <a href="https://bsky.app/profile/symfony.com">on Bluesky</a> and <a href="https://www.threads.net/@symfony">on Threads</a> and share this article.</li>
<li><a href="https://feeds.feedburner.com/symfony/blog">Subscribe to the Symfony blog RSS</a> and never miss a Symfony story again.</li>
</ul>

                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/a-week-of-symfony-1027-august-31-september-6-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Javier Eguiluz ]]></dc:creator>
            <pubDate>Sun, 06 Sep 2026 09:46:00 +0200</pubDate>
            <comments>https://symfony.com/blog/a-week-of-symfony-1027-august-31-september-6-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[Meet the Symfony Core Team at the API Platform Conference 2026!]]></title>
            <link>https://symfony.com/blog/meet-the-symfony-core-team-at-the-api-platform-conference-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>
    


The API Platform Conference, the international event dedicated to the API Platform framework and its ecosystem, will take place in two weeks in Lille, France, on September 17–18, 2026. Nearly 30 talks are scheduled, in both French and English, covering…</description>
            <content:encoded><![CDATA[
                                <p><a class="block text-center" href="https://api-platform.com/fr/con/2026/" title="Api Platform 2026 1200X800">
    <img src="https://symfony.com/uploads/assets/blog/api-platform-2026-1200x800.png" alt="Api Platform 2026 1200X800">
</a></p>

<p><strong><a href="https://api-platform.com/con/2026/">The API Platform Conference</a></strong>, the international event dedicated to the API Platform framework and its ecosystem, will take place in two weeks in Lille, France, on <strong>September 17–18, 2026</strong>. Nearly 30 talks are scheduled, in both French and English, covering case studies around API Platform as well as tools and frameworks related to this project, created in 2015 and now a leading solution for building modern and efficient APIs. This year again, Symfony is a proud community partner of the event: meet us on the exhibition floor!</p>

<p>Among all the speakers and sessions planned during these two days, seven Symfony Core Team members will once again take the stage:</p>

<ul>
<li><strong><a href="https://api-platform.com/con/2026/speakers/kevin-dunglas/">Kévin Dunglas</a></strong>, API Platform's creator, will open the conference with the <a href="https://api-platform.com/con/2026/conferences/#kevin-opening-keynote">opening keynote</a>.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/nicolas-grekas/">Nicolas Grekas</a></strong>, Symfony's principal core team member, will deliver a talk on Thursday, right after Soyuka's Keynote. Details on his session are still to be announced.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/robin-chalas/">Robin Chalas</a></strong> will present <a href="https://api-platform.com/con/2026/conferences/#from-zend-framework-1-to-api-platform-4-migration-recipe">From Zend Framework 1 to API Platform 4: Migration Recipe</a>, a real-world migration case study covering legacy modernization and AI-assisted tooling.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/alexandre-daubois/">Alexandre Daubois</a></strong> will show how to <a href="https://api-platform.com/con/2026/conferences/#observer-frankenphp-la-dx-au-service-de-la-performance">observe FrankenPHP, putting DX at the service of performance</a>, live and without configuration.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/mathieu-santostefano/">Mathieu Santostefano</a></strong> will help you keep <a href="https://api-platform.com/con/2026/conferences/#des-apis-securisees-sans-perdre-la-tete">secure APIs without losing your mind</a>, covering OAuth2, OIDC, JWT, and Keycloak.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/mathias-arlaud/">Mathias Arlaud</a></strong> will revisit <a href="https://api-platform.com/con/2026/conferences/#ddd-x-api-platform-4-years-later">DDD x API Platform, 4 years later</a>, covering hexagonal architecture and message-oriented patterns.</li>
<li><strong><a href="https://api-platform.com/con/2026/speakers/florent-morselli/">Florent Morselli</a></strong> will cover <a href="https://api-platform.com/con/2026/conferences/#les-en-tetes-http-comme-premiere-ligne-de-defense-des-apis-et-du-front">HTTP headers as the first line of defense for APIs and the frontend</a>, with CSP, CORS, COOP, and COEP examples in Symfony and API Platform.</li>
</ul>

<p>More information about the speakers and schedule can be found on the <strong><a href="https://api-platform.com/con/2026/">event's website</a></strong>.</p>

<p>The program leans hard into where PHP is heading next: FrankenPHP performance and tooling, AI agents and MCP as new API consumers, and honest feedback from teams running API Platform in production. Don't miss your chance to attend this incredible event, and make sure to secure your seat before tickets run out.</p>

<p>Any questions about the API Platform Conference 2026? Get in touch with <strong><a href="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;:&#101;&#x76;&#101;&#x6e;&#116;&#x73;&#64;&#x6c;e&#115;&#x2d;&#116;&#x69;&#108;&#x6c;&#101;&#x75;&#x6c;&#115;&#x2e;&#99;&#x6f;&#111;&#x70;">Les-Tilleuls.coop</a></strong>, the event organizers.</p>

                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/meet-the-symfony-core-team-at-the-api-platform-conference-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Cécile HAMEREL ]]></dc:creator>
            <pubDate>Wed, 02 Sep 2026 16:30:00 +0200</pubDate>
            <comments>https://symfony.com/blog/meet-the-symfony-core-team-at-the-api-platform-conference-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[Introducing symfony lsp:check: Symfony-Aware Diagnostics in Your CI]]></title>
            <link>https://symfony.com/blog/introducing-symfony-lsp-check-symfony-aware-diagnostics-in-your-ci?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>A Symfony application is full of strings that mean something: route names,
template paths, translation keys, service ids, bundle configuration keys. To
PHP, they are strings like any others. Your CI pipeline verifies types with
PHPStan or Psalm, style with…</description>
            <content:encoded><![CDATA[
                                <p>A Symfony application is full of strings that mean something: route names,
template paths, translation keys, service ids, bundle configuration keys. To
PHP, they are strings like any others. Your CI pipeline verifies types with
PHPStan or Psalm, style with PHP-CS-Fixer and behavior with PHPUnit, but
nothing alerts you if you make a typo like
<code translate="no" class="notranslate">redirectToRoute('order_confirmaton')</code>.</p>
<p>The latest version of the Symfony Language Tools closes that gap. The new
<code translate="no" class="notranslate">check</code> command runs a headless version of the Symfony-aware diagnostics from
the editor integrations: against saved files, from the command line, in CI. It
works for every Symfony application, whether or not anyone on the team uses an
editor integration.</p>
<div class="section">
<h2 id="your-ci-doesn-t-know-symfony"><a class="headerlink" href="#your-ci-doesn-t-know-symfony" title="Permalink to this headline">Your CI Doesn't Know Symfony</a></h2>
<p>Symfony reports these mistakes late, or never: mistyped route names, missing
templates, missing translation keys. They survive static analysis and code
review because, as far as types are concerned, everything is fine. Even the
PHPStan Symfony extension, which makes PHP analysis container-aware, works at
the type level and inside PHP files; templates, translations, routes and
configuration files stay out of its reach.</p>
<p>The editor integrations catch these mistakes while you type, but an editor
does not review a pull request and is not attached when a script or a coding
agent modifies the application. These checks belong in CI, next to the tools
you already run.</p>
</div>
<div class="section">
<h2 id="one-command-in-symfony-cli"><a class="headerlink" href="#one-command-in-symfony-cli" title="Permalink to this headline">One Command in Symfony CLI</a></h2>
<p>If you use the <a href="https://symfony.com/download" class="reference external">Symfony CLI</a> (version 5.20.0 or newer), you already have the
checker. Run it from the root of your workspace:</p>
<div translate="no" data-loc="7" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check

Project .: runtime metadata, environment dev, complete
.:src/Controller/CheckoutController.php:14:40: error [route.not_found] Route <span class="hljs-string">"order_confirmaton"</span> does not exist <span class="hljs-keyword">in</span> the selected environment.
.:templates/checkout/confirmation.html.twig:1:8: error [translation.not_found] Translation <span class="hljs-string">"checkout.confirmed"</span> does not exist <span class="hljs-keyword">in</span> domain <span class="hljs-string">"messages"</span>.
.:templates/checkout/confirmation.html.twig:2:13: error [template.not_found] Template <span class="hljs-string">"checkout/summary.html.twig"</span> does not exist <span class="hljs-keyword">in</span> the selected environment.
Summary: 3 diagnostics, 3 active, 0 baseline matches, 0 stale baseline entries, 3 blocking</code></pre>
    </div>
</div>
<p>Symfony CLI downloads the latest stable Symfony Language Tools automatically or
you can download it from <a href="https://github.com/symfony/language-tools/releases" class="reference external" rel="external noopener noreferrer" target="_blank">GitHub Releases</a> and run <code translate="no" class="notranslate">symfony-lsp check</code>; both
invocations accept the same options.</p>
<p>Without arguments, the command discovers Symfony applications and checks all
supported project files; pass files, directories or patterns to focus the
analysis:</p>
<div translate="no" data-loc="2" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check src/ templates/
<span class="hljs-prompt">$ </span>symfony lsp:check <span class="hljs-string">'config/**/*.yaml'</span></code></pre>
    </div>
</div>
<p>The command reports Symfony-specific problems only, 30 diagnostic codes today
(<code translate="no" class="notranslate">symfony lsp:check --list-codes</code>):</p>
<ul>
    <li>unknown routes and missing required route parameters;</li>
<li>missing templates and Twig components;</li>
<li>unknown arguments of Twig functions and filters;</li>
<li>missing translation keys, domains and message placeholders;</li>
<li>unknown services and parameters;</li>
<li>unknown console argument and option names;</li>
<li>invalid bundle configuration keys, types and enums;</li>
<li>unknown or incompatible environment variable processors;</li>
<li>unknown Messenger buses and transports, and invalid handler signatures;</li>
<li>unknown validation constraint options;</li>
<li>unknown Stimulus controllers and importmap entrypoints;</li>
<li>unknown security firewalls and user providers;</li>
<li>unknown form options and invalid event listener methods.</li>
</ul>
<p>Runtime analysis is enabled by default: the checker boots each application in
the selected Symfony environment and loads the same routes, services, bundle
configuration and other runtime metadata as the editor integrations, so
diagnostics reflect your real application, not a guess based on conventions.
Through Symfony CLI, it also inherits the project-aware <code translate="no" class="notranslate">symfony php</code>
selection of PHP version and configuration. When a CI job must not execute
application code, use source-only mode:</p>
<div translate="no" data-loc="1" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check --<span class="hljs-built_in">source</span>-only</code></pre>
    </div>
</div>
<p>Reports say which analysis mode was used, and a runtime or indexing failure
marks the result as incomplete instead of silently falling back to source-only
analysis.</p>
</div>
<div class="section">
<h2 id="reports-built-for-ci"><a class="headerlink" href="#reports-built-for-ci" title="Permalink to this headline">Reports Built for CI</a></h2>
<p>The default report is a deterministic, human-readable list of projects,
diagnostics and summary counts; three structured formats target other tools:</p>
<div translate="no" data-loc="3" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check --format=json &gt; diagnostics.json
<span class="hljs-prompt">$ </span>symfony lsp:check --format=github
<span class="hljs-prompt">$ </span>symfony lsp:check --format=sarif &gt; symfony-lsp.sarif</code></pre>
    </div>
</div>
<p>The GitHub format emits workflow annotations directly on files and lines. A
minimal GitHub Actions job:</p>
<div translate="no" data-loc="16" class="notranslate codeblock codeblock-length-md codeblock-yaml">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-comment"># .github/workflows/symfony-diagnostics.yaml</span>
<span class="hljs-attr">name:</span> <span class="hljs-string">Symfony</span> <span class="hljs-string">diagnostics</span>

<span class="hljs-attr">on:</span> <span class="hljs-string">[push,</span> <span class="hljs-string">pull_request]</span>

<span class="hljs-attr">jobs:</span>
    <span class="hljs-attr">check:</span>
        <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span>
        <span class="hljs-attr">steps:</span>
            <span class="hljs-bullet">-</span> <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/checkout@v7</span>
            <span class="hljs-bullet">-</span> <span class="hljs-attr">uses:</span> <span class="hljs-string">shivammathur/setup-php@v2</span>
              <span class="hljs-attr">with:</span>
                  <span class="hljs-attr">php-version:</span> <span class="hljs-string">'8.4'</span>
                  <span class="hljs-attr">tools:</span> <span class="hljs-string">symfony-cli</span>
            <span class="hljs-bullet">-</span> <span class="hljs-attr">run:</span> <span class="hljs-string">composer</span> <span class="hljs-string">install</span> <span class="hljs-string">--no-progress</span>
            <span class="hljs-bullet">-</span> <span class="hljs-attr">run:</span> <span class="hljs-string">symfony</span> <span class="hljs-string">lsp:check</span> <span class="hljs-string">--format=github</span></code></pre>
    </div>
</div>
<p>The SARIF 2.1 report can be uploaded to code-scanning systems and includes
stable fingerprints, so findings can be tracked between runs.</p>
<p>Exit statuses distinguish findings from failures in the checker itself:</p>
<ul>
    <li><code translate="no" class="notranslate">0</code>: analysis completed without blocking diagnostics;</li>
<li><code translate="no" class="notranslate">10</code>: analysis completed with blocking diagnostics;</li>
<li><code translate="no" class="notranslate">11</code>: invocation, configuration, selection, code policy or
baseline is invalid;</li>
<li><code translate="no" class="notranslate">12</code>: analysis is incomplete because of an indexing, timeout,
process or internal failure.</li>
</ul>
<p>A failing diagnostic provider does not discard the other providers' findings:
the partial report remains available, but the incomplete status and exit code
<code translate="no" class="notranslate">12</code> prevent CI from treating it as clean.</p>
</div>
<div class="section">
<h2 id="adopt-the-checker-gradually"><a class="headerlink" href="#adopt-the-checker-gradually" title="Permalink to this headline">Adopt the Checker Gradually</a></h2>
<p>An existing application may already contain known diagnostics. An
occurrence-specific baseline enforces new findings without hiding the existing
ones:</p>
<div translate="no" data-loc="2" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check --generate-baseline
<span class="hljs-prompt">$ </span>symfony lsp:check --baseline=.symfony-lsp-baseline.json</code></pre>
    </div>
</div>
<p>Matches remain visible but do not block, survive unrelated line movement and
distinguish repeated occurrences of the same diagnostic. Refresh the baseline
explicitly with <code translate="no" class="notranslate">--refresh-baseline</code>, or add <code translate="no" class="notranslate">--strict-baseline</code> to
require stale entries to be removed.</p>
<p>You can also choose which diagnostic codes block CI without filtering the
report:</p>
<div translate="no" data-loc="1" class="notranslate codeblock codeblock-length-sm codeblock-terminal codeblock-bash">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code><span class="hljs-prompt">$ </span>symfony lsp:check --fail-on=route.not_found,translation.not_found</code></pre>
    </div>
</div>
<p>Unknown codes are rejected, so a renamed or removed code cannot silently weaken
the policy.</p>
<p>The checker and the editor integrations share the <code translate="no" class="notranslate">.symfony-lsp.json</code> project
configuration. Path exclusions are useful for embedded fixtures and generated
sources, and missing-translation diagnostics are opt-in, as in the editor:</p>
<div translate="no" data-loc="8" class="notranslate codeblock codeblock-length-sm codeblock-json">
        <div class="codeblock-scroll">
        
        <pre class="codeblock-code"><code>{
    <span class="hljs-attr">"version"</span>: <span class="hljs-number">1</span>,
    <span class="hljs-attr">"translationDiagnostics"</span>: <span class="hljs-literal">true</span>,
    <span class="hljs-attr">"excludePaths"</span>: [
        <span class="hljs-string">"tests/Fixtures/**"</span>,
        <span class="hljs-string">"generated/"</span>
    ]
}</code></pre>
    </div>
</div>
<p>See the <a href="https://github.com/symfony/language-tools/blob/main/docs/features/headless-diagnostics.rst" class="reference external" rel="external noopener noreferrer" target="_blank">headless diagnostics guide</a> for output schemas, baseline behavior,
privacy guarantees, caching and the complete command-line reference, and the
<a href="https://github.com/symfony/language-tools/blob/main/docs/project-configuration.rst" class="reference external" rel="external noopener noreferrer" target="_blank">project configuration</a> guide for the shared settings.</p>
</div>
<div class="section">
<h2 id="built-for-agents-too"><a class="headerlink" href="#built-for-agents-too" title="Permalink to this headline">Built for Agents Too</a></h2>
<p>Coding agents write a growing share of your Symfony code, and they work the
way CI does: no editor attached, validating their changes with command-line
tools. Give them this one. An agent that runs <code translate="no" class="notranslate">symfony lsp:check</code> after each
change catches its own invented route names, stale template references and
broken configuration before a human reviews the diff.</p>
<p>The command is designed for that loop: deterministic reports, stable exit
codes, machine-readable formats with precise positions and a discoverable
diagnostic contract. A human and an agent running the same check see exactly
the same findings.</p>
</div>
<div class="section">
<h2 id="add-it-to-your-pipeline"><a class="headerlink" href="#add-it-to-your-pipeline" title="Permalink to this headline">Add It to Your Pipeline</a></h2>
<p>Start with a local <code translate="no" class="notranslate">symfony lsp:check</code>, add a baseline if the application
needs one, then choose the output format and blocking policy that fit your
pipeline. Editor users keep the diagnostics they already have; now the rest of
the team, the CI and your agents get them too.</p>
<p>If the checker reports something it should not, misses a Symfony pattern used
by your application or cannot boot the project reliably, report it on the
<a href="https://github.com/symfony/language-tools/issues" class="reference external" rel="external noopener noreferrer" target="_blank">issue tracker</a>.</p>
</div>
                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/introducing-symfony-lsp-check-symfony-aware-diagnostics-in-your-ci?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Fabien Potencier ]]></dc:creator>
            <pubDate>Mon, 31 Aug 2026 14:03:00 +0200</pubDate>
            <comments>https://symfony.com/blog/introducing-symfony-lsp-check-symfony-aware-diagnostics-in-your-ci?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[Symfony 8.1.6 released]]></title>
            <link>https://symfony.com/blog/symfony-8-1-6-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>Symfony 8.1.6 has just been released.
Read the Symfony upgrade guide to learn more about upgrading Symfony
and use the SymfonyInsight upgrade reports to detect the code you will
need to change in your project.

    
                    
                Tip…</description>
            <content:encoded><![CDATA[
                                <p><a href="#Symfony%208.1.6" class="reference internal">Symfony 8.1.6</a> has just been released.</p>
<p>Read the <a href="https://symfony.com/doc/current/setup/upgrade_major.html" class="reference external">Symfony upgrade guide</a> to learn more about upgrading Symfony
and use the <a href="https://insight.symfony.com/" class="reference external">SymfonyInsight upgrade reports</a> to detect the code you will
need to change in your project.</p>
<div class="admonition admonition-tip ">
    <p class="admonition-title">
                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg>
                <span>Tip</span>
    </p><p>Want to be notified whenever a new Symfony release is published? Or when a
version is not maintained anymore? Or only when a security issue is fixed?
Consider <a href="https://symfony.com/account/notifications" class="reference external">subscribing to the Symfony Roadmap Notifications</a>.</p>
</div>
<div class="section">
<h2 id="changelog-since-symfony-8-1-5"><a class="headerlink" href="#changelog-since-symfony-8-1-5" title="Permalink to this headline">Changelog Since Symfony 8.1.5</a></h2>
<ul>
    <li>bug <a href="https://github.com/symfony/symfony/pull/65754" class="reference external" rel="external noopener noreferrer" target="_blank">#65754</a> [PhpUnitBridge] Fix ClockMock::hrtime() when the clock is not mocked and when the nanoseconds have leading zeros (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65751" class="reference external" rel="external noopener noreferrer" target="_blank">#65751</a> [HttpClient] Reject decompression bombs (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65753" class="reference external" rel="external noopener noreferrer" target="_blank">#65753</a> [HttpFoundation] Combine trusted host patterns into a single regexp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65748" class="reference external" rel="external noopener noreferrer" target="_blank">#65748</a> [PropertyInfo] Read only the doc block of a promoted property in getTypeFromConstructor() (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65749" class="reference external" rel="external noopener noreferrer" target="_blank">#65749</a> [Serializer] Enforce the element type of nested scalar collections (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65740" class="reference external" rel="external noopener noreferrer" target="_blank">#65740</a> [HttpClient] Reject https:// proxies that curl would connect to in cleartext (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65747" class="reference external" rel="external noopener noreferrer" target="_blank">#65747</a> [RateLimiter] Cap the burst size and the duration computed from it (@cs278, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65731" class="reference external" rel="external noopener noreferrer" target="_blank">#65731</a> [HttpClient] Don't send the original Host header on cross-authority redirects (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65742" class="reference external" rel="external noopener noreferrer" target="_blank">#65742</a> [HttpClient] Reject 3xx pushed responses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65746" class="reference external" rel="external noopener noreferrer" target="_blank">#65746</a> [Messenger] Drop trace args from FlattenException normalization (@ousamabenyounes, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65744" class="reference external" rel="external noopener noreferrer" target="_blank">#65744</a> [Mime] Reject an unquoted "@" in the local part of an email address (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65739" class="reference external" rel="external noopener noreferrer" target="_blank">#65739</a> [Process] Ignore invalid env var names and non-scalar env values (@nicolas-grekas, @dionisvl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65738" class="reference external" rel="external noopener noreferrer" target="_blank">#65738</a> [Process] Stop leaking CGI/FastCGI request-context vars to subprocesses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65735" class="reference external" rel="external noopener noreferrer" target="_blank">#65735</a> [Security] Avoid failing when PersistentRememberMeHandler handles a malformed cookie (@Seldaek)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65734" class="reference external" rel="external noopener noreferrer" target="_blank">#65734</a> [Security] Reject malformed login link parameters instead of throwing a TypeError (@davidszkiba, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65733" class="reference external" rel="external noopener noreferrer" target="_blank">#65733</a> [Security] Remove the legacy nested unserialize() call from token and exception classes (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65732" class="reference external" rel="external noopener noreferrer" target="_blank">#65732</a> [SecurityBundle] Restrict redirections to the current host when sessions are disabled (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65737" class="reference external" rel="external noopener noreferrer" target="_blank">#65737</a> [HttpKernel][Security] Add allowed_classes =&gt; false to unserialize() in CacheWarmerAggregate, LoggerDataCollector, and HttpCache Store (@XananasX7)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65736" class="reference external" rel="external noopener noreferrer" target="_blank">#65736</a> [HttpKernel] Ignore the session id that PHP kept from a previous request (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65730" class="reference external" rel="external noopener noreferrer" target="_blank">#65730</a> [HttpKernel] Fix TypeError in UriSigner when the hash parameter is not a string (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65743" class="reference external" rel="external noopener noreferrer" target="_blank">#65743</a> [HttpFoundation] Encode the path in the X-Accel-Redirect header (@Athorcis)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65729" class="reference external" rel="external noopener noreferrer" target="_blank">#65729</a> [HttpFoundation] Reject reserved characters in the cookie path and domain (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65728" class="reference external" rel="external noopener noreferrer" target="_blank">#65728</a> [Routing] Fix matching the "0" URL (@cs278)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65727" class="reference external" rel="external noopener noreferrer" target="_blank">#65727</a> [Yaml] Fix a TypeError when "!!binary" is given an unparsable value (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65745" class="reference external" rel="external noopener noreferrer" target="_blank">#65745</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65726" class="reference external" rel="external noopener noreferrer" target="_blank">#65726</a> [Filesystem] preserve source mode when copying files (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65741" class="reference external" rel="external noopener noreferrer" target="_blank">#65741</a> [HttpFoundation] Reject invalid paths (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65725" class="reference external" rel="external noopener noreferrer" target="_blank">#65725</a> [HttpFoundation] Fix parsing hosts and schemes in URLs (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65724" class="reference external" rel="external noopener noreferrer" target="_blank">#65724</a>  Declare the polyfills needed by the code on PHP 7.2 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65721" class="reference external" rel="external noopener noreferrer" target="_blank">#65721</a> [Lock] Never take the reserved "__write__" member as a Redis lock token (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65718" class="reference external" rel="external noopener noreferrer" target="_blank">#65718</a> [VarDumper] Escape UTF-8 encoded C1 control characters (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65706" class="reference external" rel="external noopener noreferrer" target="_blank">#65706</a> [Mailer][Mailchimp] Sign the webhook URL as sent and reject a non-string mandrill_events parameter (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65704" class="reference external" rel="external noopener noreferrer" target="_blank">#65704</a> [HttpClient] Drop credentials when a redirect changes the scheme (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65693" class="reference external" rel="external noopener noreferrer" target="_blank">#65693</a> [Messenger] Restrict what "X-Message-Stamp-*" headers can put in an envelope (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65692" class="reference external" rel="external noopener noreferrer" target="_blank">#65692</a> [Console][MonologBridge][VarDumper] Escape context strings written to the terminal (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65691" class="reference external" rel="external noopener noreferrer" target="_blank">#65691</a> [VarDumper] Escape context strings in HtmlDescriptor (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65690" class="reference external" rel="external noopener noreferrer" target="_blank">#65690</a> [ExpressionLanguage] Bound the nesting level of parsed expressions (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65689" class="reference external" rel="external noopener noreferrer" target="_blank">#65689</a> [SecurityBundle] Use a lock for login throttling by default (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65686" class="reference external" rel="external noopener noreferrer" target="_blank">#65686</a> [Serializer] Check the denormalized class is a Mime part in MimeMessageNormalizer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65688" class="reference external" rel="external noopener noreferrer" target="_blank">#65688</a> [Yaml] Bound recursion depth in the inline lexer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65687" class="reference external" rel="external noopener noreferrer" target="_blank">#65687</a> [HttpKernel] Validate the profiler token before using it as a file name (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65709" class="reference external" rel="external noopener noreferrer" target="_blank">#65709</a> [Mailer][Mailgun] Reject non-string signature fields instead of throwing a TypeError (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65710" class="reference external" rel="external noopener noreferrer" target="_blank">#65710</a> [Notifier][Twilio] Sign the query string as sent instead of the normalized one (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65716" class="reference external" rel="external noopener noreferrer" target="_blank">#65716</a> [Notifier][Lox24] Match JSON webhook requests only (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65708" class="reference external" rel="external noopener noreferrer" target="_blank">#65708</a> [Mailer][Resend] Reject a versioned signature entry without a value instead of raising a warning (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65712" class="reference external" rel="external noopener noreferrer" target="_blank">#65712</a> [Notifier][Lox24] Read the webhook payload from the JSON body (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65675" class="reference external" rel="external noopener noreferrer" target="_blank">#65675</a> [Mailer][Notifier] Reject webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65670" class="reference external" rel="external noopener noreferrer" target="_blank">#65670</a> [Serializer] Fix deep_object_to_populate for collections of objects (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65700" class="reference external" rel="external noopener noreferrer" target="_blank">#65700</a> [Mailer][Notifier] Reject Mailgun, SendGrid and Vonage webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65701" class="reference external" rel="external noopener noreferrer" target="_blank">#65701</a> [DoctrineBridge] Restore the tolerance for outdated remember-me tokens after concurrent requests (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65702" class="reference external" rel="external noopener noreferrer" target="_blank">#65702</a> [HtmlSanitizer] Compare schemes and hosts case-insensitively (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65677" class="reference external" rel="external noopener noreferrer" target="_blank">#65677</a> [Security] Reject OIDC discovery endpoints that downgrade to plain HTTP (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65705" class="reference external" rel="external noopener noreferrer" target="_blank">#65705</a> [Translation] Fix Persian (fa) translations for Form and Validator components (@amirreza-khaleghverdi)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65684" class="reference external" rel="external noopener noreferrer" target="_blank">#65684</a> [Cache][HttpFoundation] Do not unmarshall values that SodiumMarshaller cannot decrypt (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65685" class="reference external" rel="external noopener noreferrer" target="_blank">#65685</a> [Security] Narrow the race that lets a login link exceed max_uses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65699" class="reference external" rel="external noopener noreferrer" target="_blank">#65699</a> [Mailer] Reject Mailomat webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65683" class="reference external" rel="external noopener noreferrer" target="_blank">#65683</a> [HttpFoundation] Allow-list the values of the "X-Sendfile-Type" header (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65682" class="reference external" rel="external noopener noreferrer" target="_blank">#65682</a> [HttpFoundation] Ignore session ids that are not usable as file names in MockFileSessionStorage (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65681" class="reference external" rel="external noopener noreferrer" target="_blank">#65681</a> [HttpKernel] Strip cache-internal headers from backend responses in HttpCache (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65655" class="reference external" rel="external noopener noreferrer" target="_blank">#65655</a> [Security] Apply "signature_properties" when a remember-me token provider is used (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65664" class="reference external" rel="external noopener noreferrer" target="_blank">#65664</a> [HtmlSanitizer] Keep rejecting denied URL characters when percent-decoding yields malformed UTF-8 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65679" class="reference external" rel="external noopener noreferrer" target="_blank">#65679</a> [Messenger] Cover the headers that describe the message with the SigningSerializer signature (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65678" class="reference external" rel="external noopener noreferrer" target="_blank">#65678</a> [SecurityBundle] Make the remember-me cookie follow the session cookie defaults (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65676" class="reference external" rel="external noopener noreferrer" target="_blank">#65676</a> [Lock] Delete a DynamoDb lock only when the caller holds it (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65674" class="reference external" rel="external noopener noreferrer" target="_blank">#65674</a> [Mailer] Use the configured secret to authenticate Postmark webhooks (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65666" class="reference external" rel="external noopener noreferrer" target="_blank">#65666</a> [VarDumper] Account for PHP 8.6 deprecating SplFileObject::getCsvControl() (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65697" class="reference external" rel="external noopener noreferrer" target="_blank">#65697</a> [VarExporter] Fix fatal error when loading code exported by versions &lt; 8.1 (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65695" class="reference external" rel="external noopener noreferrer" target="_blank">#65695</a> [Validator] Review and finalize Indonesian (id) translation messages (@VernSG)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65671" class="reference external" rel="external noopener noreferrer" target="_blank">#65671</a> [Form][Validator] Review Dutch (nl) translations (@andrewo0)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65680" class="reference external" rel="external noopener noreferrer" target="_blank">#65680</a> [Lock] Declare symfony/http-client in the DynamoDb bridge (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65665" class="reference external" rel="external noopener noreferrer" target="_blank">#65665</a> [Validator] fix comment for Url requireTld argument (@dmitryuk)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65662" class="reference external" rel="external noopener noreferrer" target="_blank">#65662</a> [HtmlSanitizer] Accept percent-encoded line breaks and tabs in the query of hostless URLs (@webdevsamran)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65660" class="reference external" rel="external noopener noreferrer" target="_blank">#65660</a> [Cache] Respect max_execution_time in LockRegistry's wait loop (@uncaught)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65657" class="reference external" rel="external noopener noreferrer" target="_blank">#65657</a> [Security] Clarify AuthenticatorManager constructor docblock for deprecated eraseCredentials argument (@webdevsamran)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65656" class="reference external" rel="external noopener noreferrer" target="_blank">#65656</a> [Tui] Fix Tailwind font-weight and font-family utilities being treated as FIGlet fonts (@sadiqk2)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65653" class="reference external" rel="external noopener noreferrer" target="_blank">#65653</a> [Validator] Remove needs-review-translation state from Spanish translations (@reiarseni)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65647" class="reference external" rel="external noopener noreferrer" target="_blank">#65647</a> [Serializer] Fix max depth counting for subclasses that inherit MaxDepth metadata (@oliinykdm)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65646" class="reference external" rel="external noopener noreferrer" target="_blank">#65646</a>  Review translations for Estonian (et) (@erkia)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65651" class="reference external" rel="external noopener noreferrer" target="_blank">#65651</a> [Yaml] Quote strings that look like octal numbers when dumping (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65645" class="reference external" rel="external noopener noreferrer" target="_blank">#65645</a> [Validator] Review Bulgarian (bg) translations (@alkinbg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65644" class="reference external" rel="external noopener noreferrer" target="_blank">#65644</a> [Notifier] Fix escaping of MarkdownV2 markup in TelegramTransport (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65640" class="reference external" rel="external noopener noreferrer" target="_blank">#65640</a> [Serializer] Let DISABLE_TYPE_ENFORCEMENT keep strings that cannot be converted (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65637" class="reference external" rel="external noopener noreferrer" target="_blank">#65637</a> [Console][FrameworkBundle] Fix profiling a command stopped at ConsoleEvents::COMMAND (@Spomky)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65593" class="reference external" rel="external noopener noreferrer" target="_blank">#65593</a> [Validator] Improve Serbian translation messages (@kaznovac)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65629" class="reference external" rel="external noopener noreferrer" target="_blank">#65629</a> [Validator] #65566  Review Turkish (tr) translations (@mmustafaAydogan)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65634" class="reference external" rel="external noopener noreferrer" target="_blank">#65634</a> [Validator] reviewed Polish translation units 147 and 148 (@thunderer)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65632" class="reference external" rel="external noopener noreferrer" target="_blank">#65632</a> [HttpClient] Fix GuzzleHttpHandler consuming responses out of band (@peter17)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65630" class="reference external" rel="external noopener noreferrer" target="_blank">#65630</a> [HttpKernel] Fix regression when a locale aware service is never initialized (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65636" class="reference external" rel="external noopener noreferrer" target="_blank">#65636</a> [Cache] Fix authenticating to the master when using Redis Sentinel (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65621" class="reference external" rel="external noopener noreferrer" target="_blank">#65621</a> [PropertyInfo] Do not prefer a static named constructor as the property mutator (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65619" class="reference external" rel="external noopener noreferrer" target="_blank">#65619</a> [PropertyInfo] Do not prefer a static named constructor as the property accessor (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65613" class="reference external" rel="external noopener noreferrer" target="_blank">#65613</a> [Console] Fix service arguments not resolved when a command is invoked by alias or abbreviation (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65615" class="reference external" rel="external noopener noreferrer" target="_blank">#65615</a> [Validator] Review translations for Russian (ru) (@bifidokk)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65607" class="reference external" rel="external noopener noreferrer" target="_blank">#65607</a> [HttpKernel] Capture flushed content in HttpKernelBrowser (@vencakrecl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65599" class="reference external" rel="external noopener noreferrer" target="_blank">#65599</a> [CssSelector] Fix quadratic token probing in Reader::findPattern() (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65601" class="reference external" rel="external noopener noreferrer" target="_blank">#65601</a> [VarExporter] Fix export of string parameter defaults containing escaped quotes (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65598" class="reference external" rel="external noopener noreferrer" target="_blank">#65598</a> [Filesystem] Fix makeRelative() stripping leading dots when the base path is a root (@iliaal)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65594" class="reference external" rel="external noopener noreferrer" target="_blank">#65594</a> [Validator] Improve Serbian (Cyrillic) translation messages (@kaznovac, @nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65587" class="reference external" rel="external noopener noreferrer" target="_blank">#65587</a> [Validator] Review Urdu translations (@UmairRathore)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65597" class="reference external" rel="external noopener noreferrer" target="_blank">#65597</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65596" class="reference external" rel="external noopener noreferrer" target="_blank">#65596</a> [CssSelector] Cap the nesting depth of :is() and :where() (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65589" class="reference external" rel="external noopener noreferrer" target="_blank">#65589</a> [Mailer] Handle MailerSend webhooks version 2 (@ovgray)</li>
<li>data <a href="https://github.com/symfony/symfony/pull/64370" class="reference external" rel="external noopener noreferrer" target="_blank">#64370</a> Release v5.4.53</li>
</ul>
<span id="Symfony 8.1.6"></span>
</div>
                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/symfony-8-1-6-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Fabien Potencier ]]></dc:creator>
            <pubDate>Sun, 30 Aug 2026 23:44:04 +0200</pubDate>
            <comments>https://symfony.com/blog/symfony-8-1-6-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[Symfony 7.4.18 released]]></title>
            <link>https://symfony.com/blog/symfony-7-4-18-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>Symfony 7.4.18 has just been released.
Read the Symfony upgrade guide to learn more about upgrading Symfony
and use the SymfonyInsight upgrade reports to detect the code you will
need to change in your project.

    
                    
                Tip…</description>
            <content:encoded><![CDATA[
                                <p><a href="#Symfony%207.4.18" class="reference internal">Symfony 7.4.18</a> has just been released.</p>
<p>Read the <a href="https://symfony.com/doc/current/setup/upgrade_major.html" class="reference external">Symfony upgrade guide</a> to learn more about upgrading Symfony
and use the <a href="https://insight.symfony.com/" class="reference external">SymfonyInsight upgrade reports</a> to detect the code you will
need to change in your project.</p>
<div class="admonition admonition-tip ">
    <p class="admonition-title">
                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg>
                <span>Tip</span>
    </p><p>Want to be notified whenever a new Symfony release is published? Or when a
version is not maintained anymore? Or only when a security issue is fixed?
Consider <a href="https://symfony.com/account/notifications" class="reference external">subscribing to the Symfony Roadmap Notifications</a>.</p>
</div>
<div class="section">
<h2 id="changelog-since-symfony-7-4-17"><a class="headerlink" href="#changelog-since-symfony-7-4-17" title="Permalink to this headline">Changelog Since Symfony 7.4.17</a></h2>
<ul>
    <li>bug <a href="https://github.com/symfony/symfony/pull/65754" class="reference external" rel="external noopener noreferrer" target="_blank">#65754</a> [PhpUnitBridge] Fix ClockMock::hrtime() when the clock is not mocked and when the nanoseconds have leading zeros (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65751" class="reference external" rel="external noopener noreferrer" target="_blank">#65751</a> [HttpClient] Reject decompression bombs (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65753" class="reference external" rel="external noopener noreferrer" target="_blank">#65753</a> [HttpFoundation] Combine trusted host patterns into a single regexp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65740" class="reference external" rel="external noopener noreferrer" target="_blank">#65740</a> [HttpClient] Reject https:// proxies that curl would connect to in cleartext (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65747" class="reference external" rel="external noopener noreferrer" target="_blank">#65747</a> [RateLimiter] Cap the burst size and the duration computed from it (@cs278, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65731" class="reference external" rel="external noopener noreferrer" target="_blank">#65731</a> [HttpClient] Don't send the original Host header on cross-authority redirects (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65742" class="reference external" rel="external noopener noreferrer" target="_blank">#65742</a> [HttpClient] Reject 3xx pushed responses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65746" class="reference external" rel="external noopener noreferrer" target="_blank">#65746</a> [Messenger] Drop trace args from FlattenException normalization (@ousamabenyounes, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65744" class="reference external" rel="external noopener noreferrer" target="_blank">#65744</a> [Mime] Reject an unquoted "@" in the local part of an email address (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65739" class="reference external" rel="external noopener noreferrer" target="_blank">#65739</a> [Process] Ignore invalid env var names and non-scalar env values (@nicolas-grekas, @dionisvl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65738" class="reference external" rel="external noopener noreferrer" target="_blank">#65738</a> [Process] Stop leaking CGI/FastCGI request-context vars to subprocesses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65735" class="reference external" rel="external noopener noreferrer" target="_blank">#65735</a> [Security] Avoid failing when PersistentRememberMeHandler handles a malformed cookie (@Seldaek)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65734" class="reference external" rel="external noopener noreferrer" target="_blank">#65734</a> [Security] Reject malformed login link parameters instead of throwing a TypeError (@davidszkiba, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65733" class="reference external" rel="external noopener noreferrer" target="_blank">#65733</a> [Security] Remove the legacy nested unserialize() call from token and exception classes (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65732" class="reference external" rel="external noopener noreferrer" target="_blank">#65732</a> [SecurityBundle] Restrict redirections to the current host when sessions are disabled (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65737" class="reference external" rel="external noopener noreferrer" target="_blank">#65737</a> [HttpKernel][Security] Add allowed_classes =&gt; false to unserialize() in CacheWarmerAggregate, LoggerDataCollector, and HttpCache Store (@XananasX7)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65736" class="reference external" rel="external noopener noreferrer" target="_blank">#65736</a> [HttpKernel] Ignore the session id that PHP kept from a previous request (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65730" class="reference external" rel="external noopener noreferrer" target="_blank">#65730</a> [HttpKernel] Fix TypeError in UriSigner when the hash parameter is not a string (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65743" class="reference external" rel="external noopener noreferrer" target="_blank">#65743</a> [HttpFoundation] Encode the path in the X-Accel-Redirect header (@Athorcis)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65729" class="reference external" rel="external noopener noreferrer" target="_blank">#65729</a> [HttpFoundation] Reject reserved characters in the cookie path and domain (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65728" class="reference external" rel="external noopener noreferrer" target="_blank">#65728</a> [Routing] Fix matching the "0" URL (@cs278)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65727" class="reference external" rel="external noopener noreferrer" target="_blank">#65727</a> [Yaml] Fix a TypeError when "!!binary" is given an unparsable value (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65745" class="reference external" rel="external noopener noreferrer" target="_blank">#65745</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65726" class="reference external" rel="external noopener noreferrer" target="_blank">#65726</a> [Filesystem] preserve source mode when copying files (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65741" class="reference external" rel="external noopener noreferrer" target="_blank">#65741</a> [HttpFoundation] Reject invalid paths (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65725" class="reference external" rel="external noopener noreferrer" target="_blank">#65725</a> [HttpFoundation] Fix parsing hosts and schemes in URLs (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65724" class="reference external" rel="external noopener noreferrer" target="_blank">#65724</a>  Declare the polyfills needed by the code on PHP 7.2 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65721" class="reference external" rel="external noopener noreferrer" target="_blank">#65721</a> [Lock] Never take the reserved "__write__" member as a Redis lock token (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65718" class="reference external" rel="external noopener noreferrer" target="_blank">#65718</a> [VarDumper] Escape UTF-8 encoded C1 control characters (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65706" class="reference external" rel="external noopener noreferrer" target="_blank">#65706</a> [Mailer][Mailchimp] Sign the webhook URL as sent and reject a non-string mandrill_events parameter (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65704" class="reference external" rel="external noopener noreferrer" target="_blank">#65704</a> [HttpClient] Drop credentials when a redirect changes the scheme (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65693" class="reference external" rel="external noopener noreferrer" target="_blank">#65693</a> [Messenger] Restrict what "X-Message-Stamp-*" headers can put in an envelope (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65692" class="reference external" rel="external noopener noreferrer" target="_blank">#65692</a> [Console][MonologBridge][VarDumper] Escape context strings written to the terminal (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65691" class="reference external" rel="external noopener noreferrer" target="_blank">#65691</a> [VarDumper] Escape context strings in HtmlDescriptor (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65690" class="reference external" rel="external noopener noreferrer" target="_blank">#65690</a> [ExpressionLanguage] Bound the nesting level of parsed expressions (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65689" class="reference external" rel="external noopener noreferrer" target="_blank">#65689</a> [SecurityBundle] Use a lock for login throttling by default (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65686" class="reference external" rel="external noopener noreferrer" target="_blank">#65686</a> [Serializer] Check the denormalized class is a Mime part in MimeMessageNormalizer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65688" class="reference external" rel="external noopener noreferrer" target="_blank">#65688</a> [Yaml] Bound recursion depth in the inline lexer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65687" class="reference external" rel="external noopener noreferrer" target="_blank">#65687</a> [HttpKernel] Validate the profiler token before using it as a file name (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65709" class="reference external" rel="external noopener noreferrer" target="_blank">#65709</a> [Mailer][Mailgun] Reject non-string signature fields instead of throwing a TypeError (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65710" class="reference external" rel="external noopener noreferrer" target="_blank">#65710</a> [Notifier][Twilio] Sign the query string as sent instead of the normalized one (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65716" class="reference external" rel="external noopener noreferrer" target="_blank">#65716</a> [Notifier][Lox24] Match JSON webhook requests only (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65708" class="reference external" rel="external noopener noreferrer" target="_blank">#65708</a> [Mailer][Resend] Reject a versioned signature entry without a value instead of raising a warning (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65712" class="reference external" rel="external noopener noreferrer" target="_blank">#65712</a> [Notifier][Lox24] Read the webhook payload from the JSON body (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65675" class="reference external" rel="external noopener noreferrer" target="_blank">#65675</a> [Mailer][Notifier] Reject webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65670" class="reference external" rel="external noopener noreferrer" target="_blank">#65670</a> [Serializer] Fix deep_object_to_populate for collections of objects (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65700" class="reference external" rel="external noopener noreferrer" target="_blank">#65700</a> [Mailer][Notifier] Reject Mailgun, SendGrid and Vonage webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65701" class="reference external" rel="external noopener noreferrer" target="_blank">#65701</a> [DoctrineBridge] Restore the tolerance for outdated remember-me tokens after concurrent requests (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65702" class="reference external" rel="external noopener noreferrer" target="_blank">#65702</a> [HtmlSanitizer] Compare schemes and hosts case-insensitively (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65677" class="reference external" rel="external noopener noreferrer" target="_blank">#65677</a> [Security] Reject OIDC discovery endpoints that downgrade to plain HTTP (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65705" class="reference external" rel="external noopener noreferrer" target="_blank">#65705</a> [Translation] Fix Persian (fa) translations for Form and Validator components (@amirreza-khaleghverdi)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65684" class="reference external" rel="external noopener noreferrer" target="_blank">#65684</a> [Cache][HttpFoundation] Do not unmarshall values that SodiumMarshaller cannot decrypt (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65685" class="reference external" rel="external noopener noreferrer" target="_blank">#65685</a> [Security] Narrow the race that lets a login link exceed max_uses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65699" class="reference external" rel="external noopener noreferrer" target="_blank">#65699</a> [Mailer] Reject Mailomat webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65683" class="reference external" rel="external noopener noreferrer" target="_blank">#65683</a> [HttpFoundation] Allow-list the values of the "X-Sendfile-Type" header (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65682" class="reference external" rel="external noopener noreferrer" target="_blank">#65682</a> [HttpFoundation] Ignore session ids that are not usable as file names in MockFileSessionStorage (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65681" class="reference external" rel="external noopener noreferrer" target="_blank">#65681</a> [HttpKernel] Strip cache-internal headers from backend responses in HttpCache (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65655" class="reference external" rel="external noopener noreferrer" target="_blank">#65655</a> [Security] Apply "signature_properties" when a remember-me token provider is used (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65664" class="reference external" rel="external noopener noreferrer" target="_blank">#65664</a> [HtmlSanitizer] Keep rejecting denied URL characters when percent-decoding yields malformed UTF-8 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65679" class="reference external" rel="external noopener noreferrer" target="_blank">#65679</a> [Messenger] Cover the headers that describe the message with the SigningSerializer signature (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65678" class="reference external" rel="external noopener noreferrer" target="_blank">#65678</a> [SecurityBundle] Make the remember-me cookie follow the session cookie defaults (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65676" class="reference external" rel="external noopener noreferrer" target="_blank">#65676</a> [Lock] Delete a DynamoDb lock only when the caller holds it (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65674" class="reference external" rel="external noopener noreferrer" target="_blank">#65674</a> [Mailer] Use the configured secret to authenticate Postmark webhooks (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65666" class="reference external" rel="external noopener noreferrer" target="_blank">#65666</a> [VarDumper] Account for PHP 8.6 deprecating SplFileObject::getCsvControl() (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65695" class="reference external" rel="external noopener noreferrer" target="_blank">#65695</a> [Validator] Review and finalize Indonesian (id) translation messages (@VernSG)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65671" class="reference external" rel="external noopener noreferrer" target="_blank">#65671</a> [Form][Validator] Review Dutch (nl) translations (@andrewo0)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65680" class="reference external" rel="external noopener noreferrer" target="_blank">#65680</a> [Lock] Declare symfony/http-client in the DynamoDb bridge (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65662" class="reference external" rel="external noopener noreferrer" target="_blank">#65662</a> [HtmlSanitizer] Accept percent-encoded line breaks and tabs in the query of hostless URLs (@webdevsamran)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65660" class="reference external" rel="external noopener noreferrer" target="_blank">#65660</a> [Cache] Respect max_execution_time in LockRegistry's wait loop (@uncaught)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65653" class="reference external" rel="external noopener noreferrer" target="_blank">#65653</a> [Validator] Remove needs-review-translation state from Spanish translations (@reiarseni)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65647" class="reference external" rel="external noopener noreferrer" target="_blank">#65647</a> [Serializer] Fix max depth counting for subclasses that inherit MaxDepth metadata (@oliinykdm)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65646" class="reference external" rel="external noopener noreferrer" target="_blank">#65646</a>  Review translations for Estonian (et) (@erkia)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65651" class="reference external" rel="external noopener noreferrer" target="_blank">#65651</a> [Yaml] Quote strings that look like octal numbers when dumping (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65645" class="reference external" rel="external noopener noreferrer" target="_blank">#65645</a> [Validator] Review Bulgarian (bg) translations (@alkinbg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65644" class="reference external" rel="external noopener noreferrer" target="_blank">#65644</a> [Notifier] Fix escaping of MarkdownV2 markup in TelegramTransport (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65637" class="reference external" rel="external noopener noreferrer" target="_blank">#65637</a> [Console][FrameworkBundle] Fix profiling a command stopped at ConsoleEvents::COMMAND (@Spomky)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65593" class="reference external" rel="external noopener noreferrer" target="_blank">#65593</a> [Validator] Improve Serbian translation messages (@kaznovac)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65629" class="reference external" rel="external noopener noreferrer" target="_blank">#65629</a> [Validator] #65566  Review Turkish (tr) translations (@mmustafaAydogan)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65634" class="reference external" rel="external noopener noreferrer" target="_blank">#65634</a> [Validator] reviewed Polish translation units 147 and 148 (@thunderer)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65630" class="reference external" rel="external noopener noreferrer" target="_blank">#65630</a> [HttpKernel] Fix regression when a locale aware service is never initialized (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65636" class="reference external" rel="external noopener noreferrer" target="_blank">#65636</a> [Cache] Fix authenticating to the master when using Redis Sentinel (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65621" class="reference external" rel="external noopener noreferrer" target="_blank">#65621</a> [PropertyInfo] Do not prefer a static named constructor as the property mutator (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65619" class="reference external" rel="external noopener noreferrer" target="_blank">#65619</a> [PropertyInfo] Do not prefer a static named constructor as the property accessor (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65615" class="reference external" rel="external noopener noreferrer" target="_blank">#65615</a> [Validator] Review translations for Russian (ru) (@bifidokk)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65607" class="reference external" rel="external noopener noreferrer" target="_blank">#65607</a> [HttpKernel] Capture flushed content in HttpKernelBrowser (@vencakrecl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65599" class="reference external" rel="external noopener noreferrer" target="_blank">#65599</a> [CssSelector] Fix quadratic token probing in Reader::findPattern() (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65601" class="reference external" rel="external noopener noreferrer" target="_blank">#65601</a> [VarExporter] Fix export of string parameter defaults containing escaped quotes (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65598" class="reference external" rel="external noopener noreferrer" target="_blank">#65598</a> [Filesystem] Fix makeRelative() stripping leading dots when the base path is a root (@iliaal)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65594" class="reference external" rel="external noopener noreferrer" target="_blank">#65594</a> [Validator] Improve Serbian (Cyrillic) translation messages (@kaznovac, @nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65587" class="reference external" rel="external noopener noreferrer" target="_blank">#65587</a> [Validator] Review Urdu translations (@UmairRathore)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65597" class="reference external" rel="external noopener noreferrer" target="_blank">#65597</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65596" class="reference external" rel="external noopener noreferrer" target="_blank">#65596</a> [CssSelector] Cap the nesting depth of :is() and :where() (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65589" class="reference external" rel="external noopener noreferrer" target="_blank">#65589</a> [Mailer] Handle MailerSend webhooks version 2 (@ovgray)</li>
<li>data <a href="https://github.com/symfony/symfony/pull/64370" class="reference external" rel="external noopener noreferrer" target="_blank">#64370</a> Release v5.4.53</li>
</ul>
<span id="Symfony 7.4.18"></span>
</div>
                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/symfony-7-4-18-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Fabien Potencier ]]></dc:creator>
            <pubDate>Sun, 30 Aug 2026 23:39:49 +0200</pubDate>
            <comments>https://symfony.com/blog/symfony-7-4-18-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[Symfony 6.4.45 released]]></title>
            <link>https://symfony.com/blog/symfony-6-4-45-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>Symfony 6.4.45 has just been released.
Read the Symfony upgrade guide to learn more about upgrading Symfony
and use the SymfonyInsight upgrade reports to detect the code you will
need to change in your project.

    
                    
                Tip…</description>
            <content:encoded><![CDATA[
                                <p><a href="#Symfony%206.4.45" class="reference internal">Symfony 6.4.45</a> has just been released.</p>
<p>Read the <a href="https://symfony.com/doc/current/setup/upgrade_major.html" class="reference external">Symfony upgrade guide</a> to learn more about upgrading Symfony
and use the <a href="https://insight.symfony.com/" class="reference external">SymfonyInsight upgrade reports</a> to detect the code you will
need to change in your project.</p>
<div class="admonition admonition-tip ">
    <p class="admonition-title">
                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg>
                <span>Tip</span>
    </p><p>Want to be notified whenever a new Symfony release is published? Or when a
version is not maintained anymore? Or only when a security issue is fixed?
Consider <a href="https://symfony.com/account/notifications" class="reference external">subscribing to the Symfony Roadmap Notifications</a>.</p>
</div>
<div class="section">
<h2 id="changelog-since-symfony-6-4-44"><a class="headerlink" href="#changelog-since-symfony-6-4-44" title="Permalink to this headline">Changelog Since Symfony 6.4.44</a></h2>
<ul>
    <li>bug <a href="https://github.com/symfony/symfony/pull/65754" class="reference external" rel="external noopener noreferrer" target="_blank">#65754</a> [PhpUnitBridge] Fix ClockMock::hrtime() when the clock is not mocked and when the nanoseconds have leading zeros (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65751" class="reference external" rel="external noopener noreferrer" target="_blank">#65751</a> [HttpClient] Reject decompression bombs (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65753" class="reference external" rel="external noopener noreferrer" target="_blank">#65753</a> [HttpFoundation] Combine trusted host patterns into a single regexp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65740" class="reference external" rel="external noopener noreferrer" target="_blank">#65740</a> [HttpClient] Reject https:// proxies that curl would connect to in cleartext (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65747" class="reference external" rel="external noopener noreferrer" target="_blank">#65747</a> [RateLimiter] Cap the burst size and the duration computed from it (@cs278, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65731" class="reference external" rel="external noopener noreferrer" target="_blank">#65731</a> [HttpClient] Don't send the original Host header on cross-authority redirects (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65742" class="reference external" rel="external noopener noreferrer" target="_blank">#65742</a> [HttpClient] Reject 3xx pushed responses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65746" class="reference external" rel="external noopener noreferrer" target="_blank">#65746</a> [Messenger] Drop trace args from FlattenException normalization (@ousamabenyounes, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65744" class="reference external" rel="external noopener noreferrer" target="_blank">#65744</a> [Mime] Reject an unquoted "@" in the local part of an email address (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65739" class="reference external" rel="external noopener noreferrer" target="_blank">#65739</a> [Process] Ignore invalid env var names and non-scalar env values (@nicolas-grekas, @dionisvl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65738" class="reference external" rel="external noopener noreferrer" target="_blank">#65738</a> [Process] Stop leaking CGI/FastCGI request-context vars to subprocesses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65735" class="reference external" rel="external noopener noreferrer" target="_blank">#65735</a> [Security] Avoid failing when PersistentRememberMeHandler handles a malformed cookie (@Seldaek)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65734" class="reference external" rel="external noopener noreferrer" target="_blank">#65734</a> [Security] Reject malformed login link parameters instead of throwing a TypeError (@davidszkiba, @nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65733" class="reference external" rel="external noopener noreferrer" target="_blank">#65733</a> [Security] Remove the legacy nested unserialize() call from token and exception classes (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65732" class="reference external" rel="external noopener noreferrer" target="_blank">#65732</a> [SecurityBundle] Restrict redirections to the current host when sessions are disabled (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65737" class="reference external" rel="external noopener noreferrer" target="_blank">#65737</a> [HttpKernel][Security] Add allowed_classes =&gt; false to unserialize() in CacheWarmerAggregate, LoggerDataCollector, and HttpCache Store (@XananasX7)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65736" class="reference external" rel="external noopener noreferrer" target="_blank">#65736</a> [HttpKernel] Ignore the session id that PHP kept from a previous request (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65730" class="reference external" rel="external noopener noreferrer" target="_blank">#65730</a> [HttpKernel] Fix TypeError in UriSigner when the hash parameter is not a string (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65743" class="reference external" rel="external noopener noreferrer" target="_blank">#65743</a> [HttpFoundation] Encode the path in the X-Accel-Redirect header (@Athorcis)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65729" class="reference external" rel="external noopener noreferrer" target="_blank">#65729</a> [HttpFoundation] Reject reserved characters in the cookie path and domain (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65728" class="reference external" rel="external noopener noreferrer" target="_blank">#65728</a> [Routing] Fix matching the "0" URL (@cs278)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65727" class="reference external" rel="external noopener noreferrer" target="_blank">#65727</a> [Yaml] Fix a TypeError when "!!binary" is given an unparsable value (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65745" class="reference external" rel="external noopener noreferrer" target="_blank">#65745</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65726" class="reference external" rel="external noopener noreferrer" target="_blank">#65726</a> [Filesystem] preserve source mode when copying files (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65741" class="reference external" rel="external noopener noreferrer" target="_blank">#65741</a> [HttpFoundation] Reject invalid paths (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65725" class="reference external" rel="external noopener noreferrer" target="_blank">#65725</a> [HttpFoundation] Fix parsing hosts and schemes in URLs (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65724" class="reference external" rel="external noopener noreferrer" target="_blank">#65724</a>  Declare the polyfills needed by the code on PHP 7.2 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65721" class="reference external" rel="external noopener noreferrer" target="_blank">#65721</a> [Lock] Never take the reserved "__write__" member as a Redis lock token (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65718" class="reference external" rel="external noopener noreferrer" target="_blank">#65718</a> [VarDumper] Escape UTF-8 encoded C1 control characters (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65704" class="reference external" rel="external noopener noreferrer" target="_blank">#65704</a> [HttpClient] Drop credentials when a redirect changes the scheme (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65693" class="reference external" rel="external noopener noreferrer" target="_blank">#65693</a> [Messenger] Restrict what "X-Message-Stamp-*" headers can put in an envelope (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65692" class="reference external" rel="external noopener noreferrer" target="_blank">#65692</a> [Console][MonologBridge][VarDumper] Escape context strings written to the terminal (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65691" class="reference external" rel="external noopener noreferrer" target="_blank">#65691</a> [VarDumper] Escape context strings in HtmlDescriptor (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65690" class="reference external" rel="external noopener noreferrer" target="_blank">#65690</a> [ExpressionLanguage] Bound the nesting level of parsed expressions (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65689" class="reference external" rel="external noopener noreferrer" target="_blank">#65689</a> [SecurityBundle] Use a lock for login throttling by default (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65686" class="reference external" rel="external noopener noreferrer" target="_blank">#65686</a> [Serializer] Check the denormalized class is a Mime part in MimeMessageNormalizer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65688" class="reference external" rel="external noopener noreferrer" target="_blank">#65688</a> [Yaml] Bound recursion depth in the inline lexer (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65687" class="reference external" rel="external noopener noreferrer" target="_blank">#65687</a> [HttpKernel] Validate the profiler token before using it as a file name (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65709" class="reference external" rel="external noopener noreferrer" target="_blank">#65709</a> [Mailer][Mailgun] Reject non-string signature fields instead of throwing a TypeError (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65710" class="reference external" rel="external noopener noreferrer" target="_blank">#65710</a> [Notifier][Twilio] Sign the query string as sent instead of the normalized one (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65670" class="reference external" rel="external noopener noreferrer" target="_blank">#65670</a> [Serializer] Fix deep_object_to_populate for collections of objects (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65700" class="reference external" rel="external noopener noreferrer" target="_blank">#65700</a> [Mailer][Notifier] Reject Mailgun, SendGrid and Vonage webhook requests with a stale timestamp (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65701" class="reference external" rel="external noopener noreferrer" target="_blank">#65701</a> [DoctrineBridge] Restore the tolerance for outdated remember-me tokens after concurrent requests (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65702" class="reference external" rel="external noopener noreferrer" target="_blank">#65702</a> [HtmlSanitizer] Compare schemes and hosts case-insensitively (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65705" class="reference external" rel="external noopener noreferrer" target="_blank">#65705</a> [Translation] Fix Persian (fa) translations for Form and Validator components (@amirreza-khaleghverdi)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65684" class="reference external" rel="external noopener noreferrer" target="_blank">#65684</a> [Cache][HttpFoundation] Do not unmarshall values that SodiumMarshaller cannot decrypt (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65685" class="reference external" rel="external noopener noreferrer" target="_blank">#65685</a> [Security] Narrow the race that lets a login link exceed max_uses (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65683" class="reference external" rel="external noopener noreferrer" target="_blank">#65683</a> [HttpFoundation] Allow-list the values of the "X-Sendfile-Type" header (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65682" class="reference external" rel="external noopener noreferrer" target="_blank">#65682</a> [HttpFoundation] Ignore session ids that are not usable as file names in MockFileSessionStorage (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65681" class="reference external" rel="external noopener noreferrer" target="_blank">#65681</a> [HttpKernel] Strip cache-internal headers from backend responses in HttpCache (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65655" class="reference external" rel="external noopener noreferrer" target="_blank">#65655</a> [Security] Apply "signature_properties" when a remember-me token provider is used (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65664" class="reference external" rel="external noopener noreferrer" target="_blank">#65664</a> [HtmlSanitizer] Keep rejecting denied URL characters when percent-decoding yields malformed UTF-8 (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65674" class="reference external" rel="external noopener noreferrer" target="_blank">#65674</a> [Mailer] Use the configured secret to authenticate Postmark webhooks (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65666" class="reference external" rel="external noopener noreferrer" target="_blank">#65666</a> [VarDumper] Account for PHP 8.6 deprecating SplFileObject::getCsvControl() (@nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65695" class="reference external" rel="external noopener noreferrer" target="_blank">#65695</a> [Validator] Review and finalize Indonesian (id) translation messages (@VernSG)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65671" class="reference external" rel="external noopener noreferrer" target="_blank">#65671</a> [Form][Validator] Review Dutch (nl) translations (@andrewo0)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65662" class="reference external" rel="external noopener noreferrer" target="_blank">#65662</a> [HtmlSanitizer] Accept percent-encoded line breaks and tabs in the query of hostless URLs (@webdevsamran)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65660" class="reference external" rel="external noopener noreferrer" target="_blank">#65660</a> [Cache] Respect max_execution_time in LockRegistry's wait loop (@uncaught)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65653" class="reference external" rel="external noopener noreferrer" target="_blank">#65653</a> [Validator] Remove needs-review-translation state from Spanish translations (@reiarseni)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65647" class="reference external" rel="external noopener noreferrer" target="_blank">#65647</a> [Serializer] Fix max depth counting for subclasses that inherit MaxDepth metadata (@oliinykdm)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65646" class="reference external" rel="external noopener noreferrer" target="_blank">#65646</a>  Review translations for Estonian (et) (@erkia)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65651" class="reference external" rel="external noopener noreferrer" target="_blank">#65651</a> [Yaml] Quote strings that look like octal numbers when dumping (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65645" class="reference external" rel="external noopener noreferrer" target="_blank">#65645</a> [Validator] Review Bulgarian (bg) translations (@alkinbg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65644" class="reference external" rel="external noopener noreferrer" target="_blank">#65644</a> [Notifier] Fix escaping of MarkdownV2 markup in TelegramTransport (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65637" class="reference external" rel="external noopener noreferrer" target="_blank">#65637</a> [Console][FrameworkBundle] Fix profiling a command stopped at ConsoleEvents::COMMAND (@Spomky)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65593" class="reference external" rel="external noopener noreferrer" target="_blank">#65593</a> [Validator] Improve Serbian translation messages (@kaznovac)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65629" class="reference external" rel="external noopener noreferrer" target="_blank">#65629</a> [Validator] #65566  Review Turkish (tr) translations (@mmustafaAydogan)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65634" class="reference external" rel="external noopener noreferrer" target="_blank">#65634</a> [Validator] reviewed Polish translation units 147 and 148 (@thunderer)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65630" class="reference external" rel="external noopener noreferrer" target="_blank">#65630</a> [HttpKernel] Fix regression when a locale aware service is never initialized (@lazerg)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65636" class="reference external" rel="external noopener noreferrer" target="_blank">#65636</a> [Cache] Fix authenticating to the master when using Redis Sentinel (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65621" class="reference external" rel="external noopener noreferrer" target="_blank">#65621</a> [PropertyInfo] Do not prefer a static named constructor as the property mutator (@nicolas-grekas)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65619" class="reference external" rel="external noopener noreferrer" target="_blank">#65619</a> [PropertyInfo] Do not prefer a static named constructor as the property accessor (@lazerg)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65615" class="reference external" rel="external noopener noreferrer" target="_blank">#65615</a> [Validator] Review translations for Russian (ru) (@bifidokk)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65607" class="reference external" rel="external noopener noreferrer" target="_blank">#65607</a> [HttpKernel] Capture flushed content in HttpKernelBrowser (@vencakrecl)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65599" class="reference external" rel="external noopener noreferrer" target="_blank">#65599</a> [CssSelector] Fix quadratic token probing in Reader::findPattern() (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65601" class="reference external" rel="external noopener noreferrer" target="_blank">#65601</a> [VarExporter] Fix export of string parameter defaults containing escaped quotes (@iliaal)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65598" class="reference external" rel="external noopener noreferrer" target="_blank">#65598</a> [Filesystem] Fix makeRelative() stripping leading dots when the base path is a root (@iliaal)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65594" class="reference external" rel="external noopener noreferrer" target="_blank">#65594</a> [Validator] Improve Serbian (Cyrillic) translation messages (@kaznovac, @nicolas-grekas)</li>
<li>minor <a href="https://github.com/symfony/symfony/pull/65587" class="reference external" rel="external noopener noreferrer" target="_blank">#65587</a> [Validator] Review Urdu translations (@UmairRathore)</li>
<li>bug <a href="https://github.com/symfony/symfony/pull/65597" class="reference external" rel="external noopener noreferrer" target="_blank">#65597</a> [Filesystem] Keep tempnam() files private when a suffix is given (@iliaal)</li>
<li>data <a href="https://github.com/symfony/symfony/pull/64370" class="reference external" rel="external noopener noreferrer" target="_blank">#64370</a> Release v5.4.53</li>
</ul>
<span id="Symfony 6.4.45"></span>
</div>
                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/symfony-6-4-45-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Fabien Potencier ]]></dc:creator>
            <pubDate>Sun, 30 Aug 2026 23:23:32 +0200</pubDate>
            <comments>https://symfony.com/blog/symfony-6-4-45-released?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
                        <item>
            <title><![CDATA[A Week of Symfony #1026 (August 24–30, 2026)]]></title>
            <link>https://symfony.com/blog/a-week-of-symfony-1026-august-24-30-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</link>
            <description>This week, Symfony development activity focused mostly on bug fixes, while the community celebrated a busy first week for Symfony Language Tools and the release of Symfony Reprise 1.0.0.

Symfony development highlights

This week, 112 pull requests were merged…</description>
            <content:encoded><![CDATA[
                                <p>This week, Symfony development activity focused mostly on bug fixes, while the community celebrated <a href="https://symfony.com/blog/symfony-language-tools-a-busy-first-week">a busy first week for Symfony Language Tools</a> and the release of <a href="https://symfony.com/blog/symfony-reprise-1-0-0-released">Symfony Reprise 1.0.0</a>.</p>

<h2>Symfony development highlights</h2>

<p>This week, 112 pull requests were merged (72 in code and 40 in docs) and 68 issues were closed (40 in code and 28 in docs). Excluding merges, 44 authors made additions and deletions. See details for <a href="https://github.com/symfony/symfony/pulse">code</a> and <a href="https://github.com/symfony/symfony-docs/pulse">docs</a>.</p>

<p><a href="https://github.com/symfony/symfony/commits/6.4">6.4 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/757b06ece0f393a2430d3bd15dc888403b2a0e9e">757b06e</a>: &#91;PropertyInfo&#93; do not prefer a static named constructor as the property accessor</li>
<li><a href="https://github.com/symfony/symfony/commit/0cb81e071ee254ce877ab9c0b9ab7434f9349dc3">0cb81e0</a>: &#91;PropertyInfo&#93; do not prefer a static named constructor as the property mutator</li>
<li><a href="https://github.com/symfony/symfony/commit/38bc4c0af4ab0a1c7ff3074fdb0f49d2c9c62307">38bc4c0</a>: &#91;Cache&#93; fix authenticating to the master when using Redis Sentinel</li>
<li><a href="https://github.com/symfony/symfony/commit/f0146f73e052c9c683bd66ea983f6d7ec420f9ad">f0146f7</a>: &#91;HttpKernel&#93; fix regression when a locale aware service is never initialized</li>
<li><a href="https://github.com/symfony/symfony/commit/19a9f0cad0cee4eac69c1ae6daa71329d2dc585c">19a9f0c</a>: &#91;Console, FrameworkBundle&#93; fix profiling a command stopped at ConsoleEvents::COMMAND</li>
<li><a href="https://github.com/symfony/symfony/commit/98143636d804efa26a6c35521868204c9d0f6099">9814363</a>: &#91;Notifier&#93; fix escaping of MarkdownV2 markup in TelegramTransport</li>
<li><a href="https://github.com/symfony/symfony/commit/ba62bf3fd1a2b71dee6402b53bdba3002d3c5577">ba62bf3</a>: &#91;Yaml&#93; quote strings that look like octal numbers when dumping</li>
<li><a href="https://github.com/symfony/symfony/commit/1b0bfd14969037c55060c3136df069ad9a3c1180">1b0bfd1</a>: &#91;Serializer&#93; fix max depth counting for subclasses that inherit MaxDepth metadata</li>
<li><a href="https://github.com/symfony/symfony/commit/00d9875a1b2c80d11ac934855fcb91354deb52a5">00d9875</a>: &#91;Cache&#93; respect max_execution_time in LockRegistry's wait loop</li>
<li><a href="https://github.com/symfony/symfony/commit/7ddd4dffbb2bd6aca1669c37a6dc96358ca6cbb6">7ddd4df</a>: &#91;HtmlSanitizer&#93; accept percent-encoded line breaks and tabs in the query of hostless URLs</li>
<li><a href="https://github.com/symfony/symfony/commit/338724d042fcec4e29531135b8dc7cb059a23735">338724d</a>: &#91;VarDumper&#93; account for PHP 8.6 deprecating SplFileObject::getCsvControl()</li>
<li><a href="https://github.com/symfony/symfony/commit/773f27759476617dd2947915b6debc48160ae983">773f277</a>: &#91;Mailer&#93; use the configured secret to authenticate Postmark webhooks</li>
<li><a href="https://github.com/symfony/symfony/commit/eb0a2ae90c59a17176a326776cd999ddc8d29e65">eb0a2ae</a>: &#91;HtmlSanitizer&#93; keep rejecting denied URL characters when percent-decoding yields malformed UTF-8</li>
<li><a href="https://github.com/symfony/symfony/commit/099ba8de5e403ad17fa6c820baefe2dafb36d0fc">099ba8d</a>: &#91;Security&#93; apply "signature_properties" when a remember-me token provider is used</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/7.4">7.4 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/dc566db8e1307041204411104264ad8a86473f36">dc566db</a>: &#91;Lock&#93; delete a DynamoDb lock only when the caller holds it</li>
<li><a href="https://github.com/symfony/symfony/commit/2bb496b24ba260eaf24fea8a5d8c319a56670d6a">2bb496b</a>: &#91;SecurityBundle&#93; make the remember-me cookie follow the session cookie defaults</li>
<li><a href="https://github.com/symfony/symfony/commit/6121e1a77816d8f5b761a21bd5b754daffb5f63d">6121e1a</a>: &#91;Messenger&#93; cover the headers that describe the message with the SigningSerializer signature</li>
<li><a href="https://github.com/symfony/symfony/commit/c3a49332a66130cc645430395d4bdc63d5082b29">c3a4933</a>: &#91;Mailer&#93; reject Mailomat webhook requests with a stale timestamp</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/8.1">8.1 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/e7fac28eb27adad341c7d9a79856afd9afe807fc">e7fac28</a>: &#91;HttpClient&#93; fix GuzzleHttpHandler consuming responses out of band</li>
<li><a href="https://github.com/symfony/symfony/commit/bf5c07f5ce48c2e43f2e7bb7d3815810485000e6">bf5c07f</a>: &#91;Serializer&#93; let DISABLE_TYPE_ENFORCEMENT keep strings that cannot be converted</li>
<li><a href="https://github.com/symfony/symfony/commit/efc7beee76023e8672afc70f7d50d88a1ad67e46">efc7bee</a>: &#91;Tui&#93; fix Tailwind font-weight and font-family utilities being treated as FIGlet fonts</li>
<li><a href="https://github.com/symfony/symfony/commit/49889f2105c972d2c7e9522629b79cad564d4020">49889f2</a>: &#91;VarExporter&#93; fix fatal error when loading code exported by versions &lt; 8.1</li>
</ul>

<p><a href="https://github.com/symfony/symfony/commits/8.2">8.2 changelog</a>:</p>

<ul>
<li><a href="https://github.com/symfony/symfony/commit/9e3449fb520b46304f972e264a20903e32561b84">9e3449f</a>: &#91;Messenger&#93; stop deduplicating the messages sent to a FIFO SQS queue on their content by default</li>
<li><a href="https://github.com/symfony/symfony/commit/cb4d4a213fd992aa8203c7236cefdd45bffa5c7d">cb4d4a2</a>: &#91;FrameworkBundle&#93; suggest more packages for unknown commands</li>
<li><a href="https://github.com/symfony/symfony/commit/524a899b61c3ce80bb1fa43dfef667671cb49cc1">524a899</a>: &#91;Console&#93; allow dropping multiple files</li>
<li><a href="https://github.com/symfony/symfony/commit/d3341175f37f434b71048016aa44c6b8b4c63eea">d334117</a>: &#91;ErrorHandler&#93; fix what the exception page announces to assistive technologies</li>
<li><a href="https://github.com/symfony/symfony/commit/93fcc92c8bf9b9e444da19e2e24d801d39634bde">93fcc92</a>: &#91;HttpFoundation&#93; expand PRIVATE_SUBNETS with five not-globally-reachable ranges</li>
</ul>

<h2>Newest issues and pull requests</h2>

<ul>
<li><a href="https://github.com/symfony/symfony/pull/65642">[FrameworkBundle] Move AssetMapper internal artefacts in build dir</a></li>
<li><a href="https://github.com/symfony/symfony/pull/65628">[Security] Dispatch RateLimitExceededEvent from LoginThrottlingListener</a></li>
<li><a href="https://github.com/symfony/symfony/pull/65633">[Messenger] Force quit messenger:consume and messenger:failed:retry on repeated SIGINT</a></li>
<li><a href="https://github.com/symfony/symfony/pull/65641">[Messenger] Add claim check support</a></li>
</ul>

<h2>Symfony CLI</h2>

<p><a href="https://github.com/symfony-cli/symfony-cli">Symfony CLI</a> is a must-have tool when developing
Symfony applications on your local machine. It includes the
<a href="https://symfony.com/doc/current/setup/symfony_server.html">Symfony Local Server</a>,
the best way to run local Symfony applications. This week Symfony CLI released
its new 5.20.0 version with the following changes:</p>

<ul>
<li>Set up Buildx for release attestations (@fabpot)</li>
<li>Add Symfony LSP support (@fabpot)</li>
<li>Widen archive timeout test margins to avoid flaky metadata timeouts (@fabpot)</li>
<li>Use Sigstore bundles for release signing (@fabpot)</li>
<li>Simplify external tool validation (@fabpot)</li>
<li>Set up Buildx for release attestations (@fabpot)</li>
<li>Reject overflowing archive sizes (@fabpot)</li>
<li>Preserve older Upsun CLI fallbacks (@fabpot)</li>
<li>Preserve LSP arguments for case-insensitive commands (@fabpot)</li>
<li>Generalize managed external tool installation (@fabpot)</li>
<li>Cover zip extraction size overflow rejection (@fabpot)</li>
<li>Add Symfony diagnostics check command (@fabpot)</li>
</ul>

<h2>Symfony Jobs</h2>

<p>These are some of the most recent Symfony job offers:</p>

<ul>
<li><strong>Symfony Developer</strong> at Steward<br>
Part-time / Temporary - $8,700 – $13,000 / month<br>
Full remote<br>
<a href="https://symfony.com/jobs/69885c2">View details</a></li>
<li><strong>Symfony Developer</strong> at ATH<br>
Contract / Freelance - €25 – €50 / hour<br>
Full remote<br>
<a href="https://symfony.com/jobs/4a82fc1">View details</a></li>
<li><strong>Lead Symfony Developer</strong> at DocuPet<br>
Full-time - CA$140,000 – CA$180,000 / year<br>
Full remote<br>
<a href="https://symfony.com/jobs/b6a97b9">View details</a></li>
</ul>

<p>You can <a href="https://symfony.com/jobs">publish a Symfony job offer for free</a> on symfony.com.</p>

<h2>SymfonyCasts Updates</h2>

<p><a href="https://symfonycasts.com/">SymfonyCasts</a> is the official way to learn Symfony.
Select a track for a guided path through 100+ video tutorial courses about
Symfony, PHP and JavaScript.</p>

<p>This week, SymfonyCasts published the following updates:</p>

<ul>
<li>(Article) <a href="https://symfonycasts.com/blog/playwright-php-symfony">Playwright-PHP Changes the Game for Symfony Testing</a></li>
<li>(Video) <a href="https://symfonycasts.com/screencast/symfony8-security/login-throttling">Symfony Security: The Basics: Limiting Login Attempts</a></li>
<li>(Video) <a href="https://symfonycasts.com/screencast/symfony8-security/exit-impersonation">Symfony Security: The Basics: Exiting Impersonation &amp; IS_IMPERSONATOR</a></li>
</ul>

<h2>They talked about us</h2>

<ul>
<li><a href="https://jolicode.com/blog/migrating-from-webpack-encore-to-vite-with-reprise">Migrating from Webpack Encore to Vite with Reprise</a></li>
<li><a href="https://medium.com/@aleksander_frolov/a-modern-api-reference-for-symfony-with-scalar-975bb08afa8f">A modern API reference for Symfony with Scalar</a></li>
<li><a href="https://dev.to/alkin/catching-risky-doctrine-migrations-before-production-dc">Catching Risky Doctrine Migrations Before Production</a></li>
<li><a href="https://dev.to/sebk69/small-entity-schema-now-supports-symfony-and-doctrine-3-1cdm">Small Entity Schema now supports Symfony and Doctrine 3</a></li>
<li><a href="https://medium.com/@przemyslaw.rafal.jez/field-level-encryption-in-doctrine-without-polluting-your-domain-c0104e710c91">Field‑Level Encryption in Doctrine, Without Polluting Your Domain</a></li>
<li><a href="https://medium.com/@tiwabrayan/how-to-deploy-a-symfony-application-with-docker-and-frankenphp-34a5a2eabbe0">How to Deploy a Symfony Application with Docker and FrankenPHP</a></li>
<li><a href="https://clemenskrack.com/articles/precognition-in-symfony-validating-a-request-without-running-the-controller">Precognition in Symfony: validating a request without running the controller</a></li>
<li><a href="https://medium.com/@alkinbg/your-symfony-logs-know-more-than-you-think-0dd6eca0f95a">Your Symfony Logs Know More Than You Think</a></li>
<li><a href="https://dev.to/pentiminax/ux-driver-a-symfony-bundle-integrating-driverjs-in-symfony-applications-3pba">UX Driver: a Symfony bundle integrating Driver.js in Symfony applications</a></li>
<li><a href="https://dev.to/sebk69/gitlab-mcp-symfony-enterprise-is-now-public-a-security-hardened-mcp-for-business-development-3kpd">GitLab MCP Symfony Enterprise Is Now Public - A Security-Hardened MCP for Business Development</a></li>
<li><a href="https://nerdpress.org/2026/08/26/enable-sentry-bundle-logging/">Enable Sentry Bundle Logging</a></li>
<li><a href="https://medium.com/@alkinbg/the-lost-update-problem-in-symfony-apis-connecting-http-etags-to-doctrine-optimistic-locking-7f22b9e25200">The Lost Update Problem in Symfony APIs: Connecting HTTP ETags to Doctrine Optimistic Locking</a></li>
<li><a href="https://jolicode.com/blog/migrer-de-webpack-encore-vers-vite-avec-reprise">Migrer de Webpack Encore vers Vite avec Reprise</a></li>
<li><a href="https://medium.com/@fatihkurekci/symfony-dependencyleri-nereden-buluyor-autowiring-nas%C4%B1l-%C3%A7al%C4%B1%C5%9F%C4%B1yor-004d62a3cf89">Symfony Dependency’leri Nereden Buluyor? Autowiring Nasıl Çalışıyor?</a></li>
<li><a href="https://habr.com/ru/articles/1074402/">100% покрытия не поймали единственный баг, который был важен</a></li>
<li><a href="https://habr.com/ru/articles/1073294/">Современный API Reference в Symfony через Scalar</a></li>
</ul>

<h2>Upcoming Symfony Events</h2>

<ul>
<li><a href="https://c.sensiolabs.de/events/symfony-php-meetup-cologne-2026?lang=en">Symfony/PHP Meetup Cologne by SensioLabs</a>: Cologne, Germany (September 24, 2026)</li>
<li><a href="https://www.acseo.fr/sylius-france-community-meetup-2026-acseo/">Sylius France Community Meetup by ACSEO</a>: Aix en Provence, France (September 28, 2026)</li>
</ul>

<h2>Call to Action</h2>

<ul>
<li>Follow Symfony <a href="https://x.com/symfony">on X</a>, <a href="https://mastodon.social/@symfony">on Mastodon</a>, <a href="https://bsky.app/profile/symfony.com">on Bluesky</a> and <a href="https://www.threads.net/@symfony">on Threads</a> and share this article.</li>
<li><a href="https://feeds.feedburner.com/symfony/blog">Subscribe to the Symfony blog RSS</a> and never miss a Symfony story again.</li>
</ul>

                <hr style="margin-bottom: 5px" />
                <div style="font-size: 90%">
                    <a href="https://symfony.com/sponsor">Sponsor</a> the Symfony project.
                </div>
            ]]></content:encoded>
            <guid isPermaLink="false">https://symfony.com/blog/a-week-of-symfony-1026-august-24-30-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed</guid>
            <dc:creator><![CDATA[ Javier Eguiluz ]]></dc:creator>
            <pubDate>Sun, 30 Aug 2026 09:43:00 +0200</pubDate>
            <comments>https://symfony.com/blog/a-week-of-symfony-1026-august-24-30-2026?utm_source=Symfony%20Blog%20Feed&amp;utm_medium=feed#comments-list</comments>
        </item>
            </channel>
</rss>
