- 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.