Symfony: Guides and Practical Know-how | Page 6 | mironsoft Blog
Symfony
-
Dec 20, 2025
The N+1 problem is the most common performance killer in Symfony projects that use Doctrine ORM. It creeps in silently, often in seemingly harmless template code, and generates hundreds of database queries where a single one would have been enough. With DQL, the QueryBuilder and JOIN FETCH it can be eliminated systematically.
-
Dec 16, 2025
Between an HTTP request arriving and the response being sent, Symfony runs through a fixed chain of kernel events, each with its own clearly scoped purpose. Knowing exactly when RequestEvent, ControllerEvent, ResponseEvent, TerminateEvent, and ExceptionEvent fire lets you place cross-cutting concerns like authentication, header injection, or logging precisely where they belong, instead of scattering them across controllers or services where they're easily forgotten or applied inconsistently.
-
Dec 14, 2025
Blue green deployment replaces the risky, gradual rollout with a single, instantly reversible cut: two fully identical environments run in parallel, the load balancer points at one while the new version is fully prepared and tested in the other. This article shows how blue green deployment for Symfony is built in practice, including database, sessions and rollback.
-
Dec 12, 2025
An API token stored in plaintext in the database is a ticking time bomb. This guide shows the complete pattern for API token authentication in Symfony, from secure generation through hashed storage to rotation, scopes and a working revocation mechanism.
-
Dec 7, 2025
Once an application handles names, comments, or bio texts that might contain emoji, accented characters, or non-Latin scripts, the classic PHP functions strlen() and substr() routinely produce wrong results, because they operate byte by byte instead of character by character. Even the improved mb_* functions still fail on complex emoji made up of several combined Unicode code points that visually render as a single character. The Symfony String component solves this with three clearly separated, immutable string classes that make explicit which level you are actually working on, and this article shows exactly when each one is the right choice.
-
Dec 5, 2025
When DQL hits its limits because a native SQL function like JSON_EXTRACT or MATCH AGAINST is missing, a custom DQL function is often the cleaner solution than falling back entirely to native queries. Doctrine's FunctionNode API makes exactly that possible.
-
Dec 4, 2025
Symfony 7 is the first major version since Symfony 5 to set PHP 8.2 as the minimum requirement, and it finally removes a range of long-deprecated APIs. At the same time, Symfony 7 brings genuine innovations: the ClockInterface standard, the AssetMapper as a webpack-free alternative, reworked DI attributes and a noticeably leaner core. This article shows what is actually new, what has been removed, and what the migration from 6.4 to 7 looks like.
-
Dec 2, 2025
Anyone sending emails in PHP with Swift Mailer or raw PHP mail() struggles with missing queuing, uncontrollable SMTP connections in tests and unreadable template code. Symfony Mailer solves this completely with type-safe email objects, Twig templates, pluggable transports, DKIM signing and clean test isolation without an SMTP server.
-
Dec 1, 2025
Pagination looks like a trivial detail at first, yet in API Platform it decides response times on large tables, consistency under concurrent writes, and ergonomics for client developers. Anyone who only knows the default offset pagination gives away performance and risks duplicate or missing records on heavily used endpoints.
-
Nov 28, 2025
Symfony and Laravel are the two dominant PHP frameworks in 2026. Both are production ready, both have large communities, and both are optimized for very different project types. This comparison skips the framework fanboy arguments and explains when which framework is the better choice.