Chaque site basé sur ZF3 (y compris l'application squeleton) est organisé de la même manière. Bien sûr, vous pouvez configurer votre application pour utiliser une autre disposition de dossier, mais cela peut rendre difficile la prise en charge de votre site par d'autres personnes qui ne sont pas familiarisées avec une telle structure de dossier.
Jetons un coup d'œil à la structure typique des dossiers Zend (voir figure 2.1) :
Figure 2.1. Structure typique des dossiers
Comme vous pouvez le voir, dans le répertoire de premier niveau (on l'appellera désormais APP_DIR), il y a plusieurs
fichiers :
composer.json est un fichier de configuration au format JSON nécessaire à Composer.
composer.lock qui contient des informations sur les packages installés avec Composer.
composer.phar est une archive PHP exécutable contenant le code de l'outil de gestion des dépendances Composer.
docker-compose.yml et Dockerfile sont des fichiers nécessaires à Docker Container Manager. Sont utilisation est optionnelle et nous n'allons pas traiter le sujet dans ce guide.
LICENSE.md est un fichier texte contenant la licence ZF3 (que vous avez pu lire dans Introduction à Zend Framework 3).
La licence ne vous permet pas de supprimer ou modifier ce fichier, alors n'y touchez pas.
phpunit.xml.dist est un fichier de configuration pour PHPUnit (framework de test unitaire).
Vous utilisez ce fichier lorsque vous souhaitez créer des tests unitaires pour votre site.
README.md est fichier texte contenant une brève description de l'application skeleton. Vous allez généralement
remplacer le contenu de ce fichier par les informations sur votre site web comme son nom, son fonctionnement et comment
l'installer.
TODO.md est un fichier auxiliaire qui peut être supprimé en toute sécurité.
Vagrantfile est un fichier auxiliaire qui contient la configuration de Vagrant, qui est
un gestionnaire d'environnement de développement virtuel.
Vous pouvez ignorer ce fichier si vous ne savez pas ce qu'est Vagrant. Nous n'aborderons pas le sujet.
Et nous avons aussi plusieurs sous-dossiers :
Le répertoire config contient les fichiers de configuration de l'application.
Le répertoire data contient les données que votre application pourrait créer. il peut également contenir un cache utilisé pour accélérer Zend Framework.
Le répertoire module contient tous les modules de l'application.
Actuellement, il existe un seul module appelé Application. Le module Application est le module principal de votre site.
Vous pouvez créer d'autres modules ici si vous le souhaitez. Nous parlerons des modules un peu plus tard.
Le dossier vendor va contenir les fichiers des bibliothèques tierses, y compris les fichiers de Zend Framework 3.
C'est typiquement Composer qui s'occupe d'y copier les fichiers.
Le dossier public contient les données publiques accessibles aux internautes. Comme vous le savez,
les internautes communiquent avec le serveur via le fichier index.php, qui est le point d'entrée de votre site web.
Votre site aura un seul point d'entrée, index.php, c'est plus sécurisé que de permettre à quiconque d'accéder à tous vos fichiers PHP.
À l'intérieur du répertoire public, vous pouvez également trouver le fichier .htaccess.
Son but principal est de définir des règles de réécriture d'URL.
Le répertoire public contient plusieurs sous-dossiers qui sont également accessibles par les internautes :
css contient tous les fichiers CSS.fonts contient des polices Web spécifiques à l'application.img contient les images accessibles au public (.JPG, .PNG, .GIF, .ICO, etc.).js contient les fichiers JavaScript utilisés par vos pages web.
Généralement, les fichiers de la bibliothèque jQuery sont placés ici, mais vous pouvez également
y placer vos propres fichiers JavaScript.Qu'est ce que jQuery ?
jQuery est une bibliothèque JavaScript qui a été créée pour simplifier le code JavaScript des pages HTML. jQuery permet d'attacher facilement des événements à certains éléments HTML, ce qui rend très simple l'interactivité de vos pages HTML.
Parce que l'application Zend Skeleton est stockée sur GitHub, à l'intérieur de la structure du répertoire, vous trouverez
un fichier caché .gitignore. C'est un fichier du système de contrôle de version GIT.
Vous pouvez l'ignorer (ou même le supprimer si vous n'envisagez pas de stocker votre code dans un dépôt GIT).