Archive
symfony
-
Vite replaced Encore, and AssetMapper replaced both in one app
Three Symfony front ends, three answers. Notes on what AssetMapper actually does, where it stops, why the Vue dashboard kept a bundler and got Vite, and why one app still runs Encore on purpose.
-
FrankenPHP worker mode, with numbers from a real application
Six weeks replacing PHP-FPM with FrankenPHP worker mode on a Symfony 6.4 back office. The config keys that mattered, the memory leak we caused ourselves, and the p95 and throughput numbers on both sides.
-
Cache stampedes, and the Lock component doing the boring part
A Redis failover cost us four minutes of 9 second p99 because the lock I hand rolled in 2019 had two bugs. Replacing it with the Cache Contracts and the Lock component deleted 210 lines.
-
React 18 inside a Symfony monolith, and the parts that hurt
Three weeks of putting React 18 components into Twig-rendered pages: createRoot and leaked roots, the two bugs StrictMode found, the one flushSync we needed, and 83 kB of extra JavaScript.
-
PHP 8, three months in: the JIT was the least of it
We moved twelve app servers from PHP 7.4 to 8.0 in January. The JIT did nothing measurable and is switched off. The comparison semantics and internal TypeErrors are what actually cost us a night.
-
Laravel 5.6 for a client dashboard, from a Symfony habit
My first substantial Laravel project after four years of Symfony: facades versus constructor injection, an N+1 that cost 118 queries, the 5.6 logging rewrite, and the scheduled report that ran three times.
-
Ten weeks of PHP 7 in production
We moved the platform from PHP 5.6 to 7.0.2 in January and are now on 7.0.3. What broke mechanically, what needed thought, the numbers off our own six boxes, and why strict_types only goes in new files.