Php
16 articles
Eight Lessons From a Nine-Month Framework Migration
From PHP 5.6 and MySQL to Symfony 8 and PostgreSQL — a production migration without a big-bang rewrite. Eight lessons from 488 commits, 4 bridge components, and one strangler fig that actually worked.
The Day We Deleted 12,000 Lines of Legacy Bridge Code
Eight coordinated commits, two hours, 129 files removed. The Strangler Fig bridge had done its job — now it was time to delete it. Here is the checklist we followed, the traps we avoided, and how we knew the bridge was ready to come down.
Porting ZF1 to Symfony Without Downtime, Module by Module
Seven ZF1 modules, four migration waves, one rule: port the most visible feature first. How the Strangler Fig bridge kept legacy routes alive while each module was rebuilt in Symfony — and how we knew when a module was ready to be deleted.
OpenSign for Symfony
OpenSign brings DocuSign-grade e-signatures to your own servers, but its Parse Server API fights back from Symfony. OSMBridgeBundle wraps that API in a typed service, turns completion webhooks into Symfony events, and boots a full OpenSign and MinIO stack locally.
Loading ZF1 Classes on PHP 8.4
Zend Framework 1 was designed for PHP 5.2. Running it on PHP 8.4 requires a shim library, an autoloader bridge between PSR-0 and PSR-4, and module autoloaders for each legacy module. Here is the infrastructure that made ZF1 work on modern PHP.
How ZF1 Users Log Into Symfony With Cross-Framework Authentication
During a Strangler Fig migration, both frameworks need to recognize the same user. Here is how a Symfony authenticator read Zend_Auth session data to create seamless single sign-on across ZF1 and Symfony — and why it was the first bridge component to be removed.
Sharing One PostgreSQL Connection Between Two ORMs
During a Strangler Fig migration, both old and new ORMs must access the same data. Here is how one Symfony event subscriber made Zend_Db and Doctrine ORM share a single database connection — no ETL, no sync scripts, no duplication.
Running ZF1 Inside Symfony 8 With the Strangler Fig Pattern
The catch-all route that let two frameworks coexist in the same process. How Symfony booted Zend Framework 1 internally, shared the session, and returned a unified response — without a reverse proxy.
Why We Migrated from Zend Framework 1 to Symfony 8 in 2026
Zend Framework 1 has been end-of-life since 2016. PHP 5.6 receives no security patches. But the application still worked — so why take the risk? The decision process behind migrating a production HR platform from ZF1 to Symfony 8.
Has Your Stack Noticed the QUERY Method Is Standard Now
RFC 10008 gives HTTP a safe, cacheable request with a body. I sent QUERY through Node, fetch, Next.js and PHP to see what actually accepts it — verbatim results included.