Article
ZF1 Front Controller and Request Dispatch
Understand ZF1 front controller dispatch, routers, and plugins so you can debug legacy routes and plan strangler cutovers.
ZF1’s front controller is the traffic cop: it resolves module/controller/action, runs plugins, and dispatches into action controllers. When a modernization plan says “only replace billing,” you need to know which routes still enter this pipeline.
Dispatch mental model
- Request hits
public/index.php Zend_Applicationbootstraps resources- Front controller router matches
- Plugins (
preDispatch/postDispatch) run - Action controller method executes and view renders
// LEGACY — custom route in bootstrap
$router = $front->getRouter();
$router->addRoute('invoice', new Zend_Controller_Router_Route(
'invoice/:id',
['controller' => 'invoice', 'action' => 'view']
));
// MODERN strangler — bypass ZF1 for selected paths at the web server
// nginx example idea: location /api/v2/ { try_files → new front controller }
// ZF1 remains default for /app/
Debugging tips
- Log module/controller/action on
preDispatchduring staging investigations. - Watch for plugins that silently redirect unauthenticated users.
- Confirm CLI scripts do not accidentally bootstrap the full front controller.
See project structure and migration planning. Error triage: PHP Error Matcher.
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.