
- Zend Framework - Home
- Zend Framework - Introduction
- Zend Framework - Installation
- Skeleton Application
- Zend Framework - MVC Architecture
- Zend Framework - Concepts
- Zend Framework - Service Manager
- Zend Framework - Event Manager
- Zend Framework - Module System
- Application Structure
- Zend Framework - Creating Module
- Zend Framework - Controllers
- Zend Framework - Routing
- Zend Framework - View Layer
- Zend Framework - Layout
- Models & Database
- Different Databases
- Forms & Validation
- Zend Framework - File Uploading
- Zend Framework - Ajax
- Cookie Management
- Session Management
- Zend Framework - Authentication
- Email Management
- Zend Framework - Unit Testing
- Zend Framework - Error Handling
- Zend Framework - Working Example
Zend Framework - Application Structure
In this chapter, let us understand the structure of the Zend Framework application. The structure of the myapp application is as follows −
composer.json composer.lock CONDUCT.md config application.config.php autoload development.local.php development.local.php.dist global.php local.php.dist README.md zend-developer-tools.local-development.php development.config.php development.config.php.dist modules.config.php CONTRIBUTING.md data cache module-classmap-cache.application.module.cache.php docker-compose.yml Dockerfile LICENSE.md module Application config src test view phpcs.xml phpunit.xml.dist public css bootstrap.css bootstrap.css.map bootstrap.min.css bootstrap.min.css.map bootstrap-theme.css bootstrap-theme.css.map bootstrap-theme.min.css bootstrap-theme.min.css.map style.css fonts glyphicons-halflings-regular.eot glyphicons-halflings-regular.svg glyphicons-halflings-regular.ttf glyphicons-halflings-regular.woff glyphicons-halflings-regular.woff2 img favicon.ico zf-logo-mark.svg index.php js bootstrap.js bootstrap.min.js jquery-3.1.0.min.js web.config README.md TODO.md Vagrantfile vendor autoload.php bin phpunit -> ../phpunit/phpunit/phpunit templatemap_generator.php -> ../zendframework/zend- view/bin/templatemap_generator.php zf-development-mode -> ../zfcampus/zf-development-mode/bin/zf- development-mode composer autoload_classmap.php autoload_namespaces.php autoload_psr4.php autoload_real.php ClassLoader.php installed.json LICENSE container-interop container-interop doctrine instantiator myclabs deep-copy phpdocumentor reflection-common reflection-docblock type-resolver phpspec prophecy phpunit php-code-coverage php-file-iterator php-text-template php-timer php-token-stream phpunit phpunit-mock-objects sebastian code-unit-reverse-lookup comparator diff environment exporter global-state object-enumerator recursion-context resource-operations version symfony yaml webmozart assert zendframework zend-component-installer zend-config zend-console zend-dom zend-escaper zend-eventmanager zend-http zend-loader zend-modulemanager zend-mvc zend-router zend-servicemanager zend-stdlib zend-test zend-uri zend-validator zend-view zfcampus zf-development-mode 73 directories, 55 files
The Zend Framework application consists of different folders. They are as follows −
Application − This directory contains your application. It will house the MVC system, as well as configurations, services used and your bootstrap file.
Config − This directory contains the configuration files of an application.
Data − This directory provides a place to store application data that is volatile and possibly temporary.
Module − Modules allow a developer to group a set of related controllers into a logically organized group.
Public − This is the applications document root. It starts the Zend application. It also contains the assets of the application like JavaScript, CSS, Images, etc.
Vendor − This directory contains composer dependencies.
Structure of the Application Modules
This is the main directory of your application. Zend Framework 2 introduces a powerful and flexible module system to organize the application efficiently. The Application module of the skeleton application (myapp) provides bootstrapping, error and routing configuration to the whole application. The structure of the Application module is as shown below −
module Application config module.config.php src Controller IndexController.php Module.php test Controller IndexControllerTest.php view application index index.phtml error 404.phtml index.phtml layout layout.phtml
Let us cover each of these module directories in detail −
Application − This is root directory of the module. The name of the folder will match the name of the module and the name is also used as the PHP namespace of all the class defined inside the module. It will house the MVC system, as well as configurations, services used, and your bootstrap file.
Config − Independent configuration of the module.
Src − Main business logic of the application.
View − Contains design / presentation (HTML) files. For example, index.phtml.
src/Module.php − It is the heart of the module. It works as a front controller for the module. The Zend process src/Module.php file before processing any PHP Classes in this module.
Application/config/module.config.php − It is implemented for the router configuration and auto loading files.
Application/view/layout − Layouts represent the common parts of multiple views. For example, page header and footer. By default, layouts should be stored in the views/layoutsfolder.
All modules share the same or similar structure as that of the above Application module.