Chapitre 33 : Organisation du code
Structurez vos projets PHP comme un pro avec une organisation claire et maintenable
1. Pourquoi organiser son code ?
Un projet PHP bien organisé est plus facile à maintenir, à tester et à faire évoluer. Une bonne structure permet aussi de travailler en équipe sans confusion.
2. Structure de base recommandée
/mon-projet
├── /public # Fichiers accessibles (index.php, CSS, JS)
├── /src # Code métier (classes, contrôleurs, modèles)
├── /templates # Fichiers HTML ou vues
├── /config # Paramètres de configuration
├── /vendor # Dépendances (via Composer)
├── /tests # Tests unitaires
├── composer.json # Fichier de configuration Composer
├── .env # Variables d'environnement (non versionnées)
├── /public # Fichiers accessibles (index.php, CSS, JS)
├── /src # Code métier (classes, contrôleurs, modèles)
├── /templates # Fichiers HTML ou vues
├── /config # Paramètres de configuration
├── /vendor # Dépendances (via Composer)
├── /tests # Tests unitaires
├── composer.json # Fichier de configuration Composer
├── .env # Variables d'environnement (non versionnées)
3. Séparation des responsabilités
- Fichiers publics : tout ce qui est accessible via le navigateur
- Fichiers de logique : classes, contrôleurs, gestion de la base
- Templates : uniquement le HTML (pas de logique PHP ici)
- Configuration : DB, clés API, options globales
4. Chargement automatique (Autoload)
Utilisez Composer pour autoloader vos classes :
// composer.json
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
Puis générez l'autoload :
composer dump-autoload
5. Gestion des configurations avec .env
Utilisez une bibliothèque comme vlucas/phpdotenv pour stocker les variables sensibles :
// .env
DB_HOST=localhost
DB_USER=root
DB_PASS=secret
DB_HOST=localhost
DB_USER=root
DB_PASS=secret
// Utilisation en PHP
echo getenv('DB_USER');
echo getenv('DB_USER');
6. Exercice pratique : Réorganisez un projet PHP
🎯 Objectif : Repartir d'un petit projet existant (avec index.php, classes et vues) et le structurer proprement.
Consignes :
- Créez les dossiers :
public,src,templates,config - Déplacez les fichiers aux bons endroits (index.php → public, classes → src, etc.)
- Ajoutez un fichier
composer.jsonavec l'autoload - Ajoutez un fichier
.envet chargez-le
Bonus :
- Configurez un fichier
router.phppour gérer les URLs - Ajoutez un système de layout réutilisable pour les templates
Conseil : Cet exercice vous aidera à appliquer une architecture claire et modulaire dans vos projets PHP.
7. Résumé
- ✅ Un bon projet PHP est divisé en zones claires : public, src, vues, config
- ✅ L'autoload avec Composer permet de charger les classes automatiquement
- ✅ Les fichiers .env permettent de garder les informations sensibles hors du code
Une bonne organisation du code est essentielle pour évoluer vers des applications professionnelles robustes.