Article
Zend Framework 1 Project Structure for Maintainers
Map ZF1 application/, public/, library/, modules, and configs so modernization work targets the right layers.
ZF1 repositories rarely match modern skeleton docs. Before changing PHP versions or extracting features, draw the real tree: which directory is the document root, where configs live, and whether modules are first-class or copy-pasted controller folders.
Common layout
project/
application/
Bootstrap.php
configs/application.ini
controllers/
models/
views/scripts/
modules/ # optional
library/
Zend/ # often vendored
MyCompany/
public/
index.php
.htaccess
scripts/ # cron / CLI
// LEGACY public/index.php fragment
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
require_once 'Zend/Application.php';
// MODERN hygiene — keep constants, but autoload app code via Composer
require dirname(__DIR__) . '/vendor/autoload.php';
// still bootstrap Zend_Application until strangler cutover
What to document in the repo
- Document root and rewrite rules (Apache/nginx)
- Include paths previously injected by Zend Studio project metadata
- Environment names in
APPLICATION_ENV - Non-web entry points under
scripts/
Related: front controller, Composer, import existing PHP project.
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.