Article
ZF1 Migration Planning: Strangler Paths that Work
Plan ZF1 retirement with inventory, containment, strangler routes, and successor choices—without abusing laminas-migration.
Successful ZF1 exits are project-managed: inventory, risk containment, incremental replacement, and proof via tests. They are not a single Composer plugin run. Official laminas-migration is for ZF2/ZF3-era stacks—plan ZF1 differently.
Recommended phases
- Inventory — routes, jobs, integrations, auth, DB writers (structure).
- Contain — isolate runtime; document EOL PHP risk (PHP 8 brief).
- Stabilize — Composer for app code, prepared statements, password hashing.
- Strangle — move high-churn endpoints first behind a new front controller.
- Retire — delete ZF1 modules only after traffic and jobs are proven elsewhere.
LEGACY monolith: / * → public/index.php (ZF1)
MODERN hybrid: /api/v2/* → new app
/admin/* → ZF1 (temporary)
/ → marketing site (static/new)
Successor options commonly include Laminas MVC (greenfield modules), another maintained framework, or purpose-built services. Cross-link from ZF to Laminas for teams also owning ZF2/ZF3 systems, and PHP 5 to modern PHP for runtime sequencing.
Related tools
- Composer.json Validator Validate composer.json structure and common mistakes without running composer install.
- Legacy PHP Risk Checker Paste PHP source for a static scan that classifies removed APIs, deprecated calls, and security-sensitive leg…
- PHP Deprecated Checker Find deprecated functions and patterns in pasted PHP to prioritize modernization work.
- PHP Environment Compare Compare two PHP environment summaries to find directive and extension mismatches.
- PHP Modernization Roadmap Build an ordered migration stage list from your PHP version, framework, Composer, database API, and deploymen…
- PHP Version Compatibility Checker Scan pasted PHP for version-sensitive syntax and APIs to plan upgrades across PHP releases.
Related reading
- Migrating Zend Framework to Laminas (Complete Guide) Deep, verified migration from ZF2/ZF3 (and Apigility/Expressive) to Laminas using laminas-migration: Composer…
- Zend Framework 1 and PHP 8: Compatibility Reality Check ZF1 is not covered by laminas-migration like ZF2/ZF3. Unverified “PHP 8 compatible” claims, typical breakages…
- Zend Framework History: ZF1, ZF2, ZF3, and Laminas A maintainer-focused timeline of Zend Framework major generations and why Laminas is the official open-source…
- Zend Framework 3 Components Inventory List the zendframework/zend-* components you actually use so Laminas migration and PHP upgrades stay proporti…
- Composer Practices for Zend Framework 3 Apps Lockfiles, platform config, abandoned zendframework packages, and safe preparation for laminas-migration.