Zend Framework - Structure de l'application

Dans ce chapitre, comprenons la structure de l'application Zend Framework. La structure dumyapp l'application est la suivante -

├── 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

L'application Zend Framework se compose de différents dossiers. Ils sont les suivants -

  • Application- Ce répertoire contient votre application. Il hébergera le système MVC, ainsi que les configurations, les services utilisés et votre fichier bootstrap.

  • Config - Ce répertoire contient les fichiers de configuration d'une application.

  • Data - Ce répertoire fournit un emplacement pour stocker les données d'application qui sont volatiles et éventuellement temporaires.

  • Module - Les modules permettent à un développeur de regrouper un ensemble de contrôleurs associés dans un groupe organisé de manière logique.

  • Public- Il s'agit de la racine du document de l'application. Il démarre l'application Zend. Il contient également les actifs de l'application tels que JavaScript, CSS, Images, etc.

  • Vendor - Ce répertoire contient les dépendances du compositeur.

Structure des modules d'application

Il s'agit du répertoire principal de votre application. Zend Framework 2 introduit un système de modules puissant et flexible pour organiser efficacement l'application. leApplicationLe module de l'application squelette (myapp) fournit la configuration d'amorçage, d'erreur et de routage à l'ensemble de l'application. La structure duApplication module est comme indiqué ci-dessous -

├── 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

Laissez-nous couvrir chacun de ces répertoires de modules en détail -

  • Application- Ceci est le répertoire racine du module. Le nom du dossier correspondra au nom du module et le nom est également utilisé comme espace de noms PHP de toute la classe définie à l'intérieur du module. Il hébergera le système MVC, ainsi que les configurations, les services utilisés et votre fichier d'amorçage.

  • Config - Configuration indépendante du module.

  • Src - Principale logique métier de l'application.

  • View- Contient des fichiers de conception / présentation (HTML). Par exemple, index.phtml.

  • src/Module.php- C'est le cœur du module. Il fonctionne comme un «contrôleur frontal» pour le module. Le processus Zendsrc/Module.php fichier avant de traiter les classes PHP dans ce module.

  • Application/config/module.config.php - Il est implémenté pour la configuration du routeur et le chargement automatique des fichiers.

  • Application/view/layout- Les mises en page représentent les parties communes de plusieurs vues. Par exemple, en-tête et pied de page. Par défaut, les mises en page doivent être stockées dans leviews/layoutsfolder.

Tous les modules partagent la même structure ou une structure similaire à celle du module d' application ci-dessus .