Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
informatique:langage:php:structure-des-dossiers-d-un-projet-php [2023/02/04 10:22] – [Avertissements] Cédric ABONNEL | informatique:langage:php:structure-des-dossiers-d-un-projet-php [2023/12/26 20:50] (Version actuelle) – [Structure des dossiers d un projet php] Cédric ABONNEL | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Programmer un site Internet en PHP ====== | ||
+ | {{ : | ||
+ | |||
+ | ===== Avertissements ===== | ||
+ | |||
+ | Bien que **Composer** soit un outil puissant pour les dépendances et les classes externes, certaines personnes préfèrent toujours créer leurs propres classes pour des raisons telles que : | ||
+ | |||
+ | * **Contrôle sur le code** : En créant ses propres classes, on peut contrôler le code source et le personnaliser pour répondre à ses besoins spécifiques. | ||
+ | |||
+ | * **Meilleure compréhension** : En créant ses propres classes, on peut mieux comprendre comment elles fonctionnent et les adapter à ses propres projets. | ||
+ | |||
+ | * **Prise en charge des anciens projets** : Si on a déjà utilisé ses propres classes pour la gestion de la base de données ou d' | ||
+ | |||
+ | * **Exigences personnalisées** : Certaines personnes peuvent avoir des exigences spécifiques qui ne sont pas prises en charge par les bibliothèques externes existantes. La création de leurs propres classes leur permet de satisfaire ces besoins. | ||
+ | |||
+ | Le choix entre l' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | en cours de rédaction | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Structure des dossiers d un projet php ===== | ||
+ | |||
+ | Dans la plupart des cas, il est recommandé de créer un dossier **public** pour séparer les fichiers publics du code source. Le dossier **public** devrait contenir les fichiers accessibles directement via un navigateur web, tels que les fichiers **HTML**, **JavaScript**, | ||
+ | |||
+ | Pour structurer un projet PHP avec des **classes**, | ||
+ | |||
+ | < | ||
+ | web | ||
+ | |-- public | ||
+ | | |-- css | ||
+ | | | ||
+ | | |-- js | ||
+ | | | ||
+ | | |-- images | ||
+ | | | ||
+ | | | ||
+ | | |-- index.php | ||
+ | |-- classes | ||
+ | | |-- class1.php | ||
+ | | |-- class2.php | ||
+ | |-- config | ||
+ | | |-- config.php | ||
+ | |-- tests | ||
+ | | |-- Database | ||
+ | | |-- DatabaseConnectorTest.php | ||
+ | |-- logs | ||
+ | | |-- application.log | ||
+ | |-- vendor | ||
+ | | |-- .. | ||
+ | |-- composer.json | ||
+ | |-- .env | ||
+ | </ | ||
+ | |||
+ | Dans un projet PHP, les dossiers **classes**, | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | Il est courant de placer les fichiers de configuration dans un dossier nommé '' | ||
+ | |||
+ | Cependant, la structure de dossiers dépend fortement des besoins spécifiques de chaque projet, il n'y a donc pas de solution universelle. Il est important de choisir une structure de dossiers qui facilite la maintenance et la compréhension de votre projet pour vous et les autres développeurs qui peuvent travailler dessus. | ||
+ | |||
+ | ===== Créer un autoloader pour les classes ===== | ||
+ | |||
+ | Un **autoloader** est une fonction en PHP qui charge automatiquement les classes nécessaires à l' | ||
+ | |||
+ | Voici un exemple d' | ||
+ | <code PHP autoload.php> | ||
+ | <?php | ||
+ | spl_autoload_register(function ($className) { | ||
+ | $classFile = ' | ||
+ | require_once $classFile; | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | Cet exemple utilise la fonction '' | ||
+ | |||
+ | La fonction anonyme convertit le nom de la classe en un nom de fichier en remplaçant les antislashs (\) par des slashs (/) et ajoute l' | ||
+ | |||
+ | Ce code suppose que les noms de classes correspondent aux noms de fichiers et que les classes sont rangées dans des dossiers hiérarchiques correspondant à leur **namespace**. Il peut être nécessaire de personnaliser cette implémentation en fonction de la structure de dossiers de votre projet. | ||
+ | |||
+ | |||
+ | <code PHP index.php> | ||
+ | <?php | ||
+ | |||
+ | // Chargement de l' | ||
+ | require_once ' | ||
+ | |||
+ | // Utilisation des classes | ||
+ | $object = new MyClass(); | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Créer un fichier de configuration ===== | ||
+ | |||
+ | ===== Créer des fichiers de log ===== | ||
+ | |||
+ | ===== Créer une connexion à la base de données ===== | ||
+ | |||
+ | --- // | ||