Skip to main content

Organisation des fichiers

Organisation des fichiers 📁

Castopod s'appuie sur le framework CodeIgniter, qui possède un modèle MVC consistant à diviser les différentes parties d'un projet sous trois formes :

  • Les vues
  • Les controlleurs
  • Les modèles

Il existe également les entités qui sont des classes permettants de manipuler plus facilement des objets comme des utilisateurs ou des fichiers.

Pour en savoir plus sur ce modèle, nous vous invitons à vous diriger vers la page correspondante à l'explication de CodeIgniter ainsi qu'à la documentation officielle.

Une fois ce modèle bien compris, nous pouvons donc analyser la structure de Castopod, qui possède ces différents éléments.

Structure générale

Voici la structure générale du projet Castopod, qui sera détaillé plus en profondeur ensuite :

organisation fichiers.png

Docker 🐋

Pour gérer Docker, Castopod s'appuie sur des fichiers décrivants les différents containeurs à construire pour gérer le projet.

On a un fichier nommé docker-compose.yml qui décrit les containeurs à construire pour le projet, qui sont au nombre de 5 :

  • Le containeur Castopod : Il va contenir l'ensemble des fichiers de CodeIgniter qui vont permettre de gérer le front-end et le back-end du projet
  • Le containeur Redis : C'est un système de gestion de base de données. Il stocke les données en mémoire vive, ce qui le rend extrêmement rapide pour les opérations de lecture et d'écriture.
  • Le containeur MariaDB : On retrouve la base de données générale du projet. Contrairement à Redis, elle est utilisé pour gérer des ensembles de données complexes avec des relations entre les tables.
  • Le containeur PHP My Admin : Ce containeur va permettre d'avoir une gestion graphique de la base de données, en accédant à la page localhost:8888 (modifiable dans le .env du projet)
  • Le containeur S3 Mock : C'est un outil qui simule le service de stockage d'objets d'Amazon Web Services (AWS) appelé Amazon S3

Ce fichier va permettre de gérer les ports sur lequel les containeurs vont être reliés à la machine hôte, de gérer différents paramètres des applications, les commandes qui vont être lancés au démarrage et le nom des volumes.

On a également un dossier Docker, qui contient un fichier dans le sous-dossier développement, qui va décrire la construction du containeur de Castopod.

Pour en savoir plus sur la gestion des fichiers Docker, nous vous invitons à lire la documentation officielle de Docker, qui contiendra plus d'informations sur le déploiement des containeurs.

Composer

Composer est un logiciel gestionnaire de dépendances libre écrit en PHP. Castopod s'appuyant sur de nombreuses bibliothèques pour fonctionner, Composer lui permet lors de son déploiement d'installer ces bibliothèques.

Pour cela, les bibliothèques PHP nécessaire sà Castopod sont listés dans un fichier nommé composer.json, qui indique également les versions à installer de ces bibliothèques, et qui créé des alias pour des commandes liées à ces bibliothèques dans la partie scripts du fichier.

Ces bibliothèques seront ensuite installées dans le dossier vendor une fois cette commande utilisée :

composer install

Encore une fois, pour avoir de plus ample informations, nous vous renvoyons vers la documentation de Composer qui vous décrira son fonctionnement.

Node

Node est, à l'instar de Composer, un gestionnaire de paquet mais en javascript, qui permet l'installation de bibliothèques en JS lors du déploiement du projet, ainsi que la gestion côté serveur.

L'ensemble de ces paquets sont détaillés dans le fichier package.json, ainsi que les alias qui pourront être utilisé via npm. Il permet par exemple l'utilisation de Vite, une bibliothèque permettant le développement en local de site internet.

Le dossier node_modules contient l'ensemble des bibliothèques JS installées, qui peuvent être téléchargées et installées via la commande :

npm install