Bienvenue dans votre projet avec Edu Framework !
La documentation complète est disponible sur : https://studoo-app.github.io/edu-framework
- PHP 8.4 ou supérieur
- Extensions PHP requises :
mbstring,pdo_sqlite,pdo_mysql,openssl - Extension PHP optionnelle :
excimer(profiler de code de la barre de debug, déjà installée dans l'image Docker) - Composer 2.x
- Docker et Docker Compose
Vérifiez votre configuration avec php bin/edu check:config.
-
Cloner le projet
git clone <votre-repo> cd <votre-projet>
-
Installer les dépendances
composer install
-
Configurer l'environnement
composer edu:init # copie .env.example vers .env # Modifier .env selon vos besoins (APP_ENV=dev pour la barre de debug)
-
Démarrer l'application, au choix :
-
Tout dans Docker (application servie par FrankenPHP)
docker compose up -d --build
L'application est disponible sur http://localhost (port
HTTP_PORT). -
Services dans Docker, application sur votre poste
docker compose up -d database mailer dbgate phpmyadmin php bin/edu start
L'application est disponible sur http://localhost:8042.
-
Le guide L'application dans Docker détaille les deux modes.
| Service | Port (défaut) | Variable .env |
Description |
|---|---|---|---|
| FrankenPHP | 80 / 443 | HTTP_PORT / HTTPS_PORT |
Serveur web (PHP + Caddy, HTTPS et HTTP/3) |
| MariaDB | 3306 | DB_SOCKET |
Base de données |
| phpMyAdmin | 8081 | PMA_PORT |
Administration MariaDB |
| dbgate | 8082 | DBGATE_PORT |
Administration des bases (MariaDB et SQLite des logs) |
| Mailpit | 1025 (SMTP), 8025 (Web) | MAILER_SMTP_PORT / MAILER_UI_PORT |
Test des emails |
| Serveur intégré | 8042 | — | php bin/edu start (hors Docker) |
Les conteneurs sont préfixés par APP_NAME. Si un autre projet occupe déjà ces ports, modifiez-les dans le .env.
Le serveur FrankenPHP est piloté par la variable SERVER_NAME :
:80: HTTP simple (défaut, développement)localhost: HTTPS local avec certificat auto-signé (https://localhost)mon-site.fr: HTTPS via Let's Encrypt (production, domaine public requis)
En mode développement (APP_ENV=dev), une barre de debug s'affiche en bas de chaque page et le profiler est accessible sur /_debug/profiler :
- journal de toutes les requêtes HTTP (statut, durée, mémoire, SAPI, erreurs), stocké dans
var/logs/core_logs.sqlite - requêtes SQL exécutées par chaque requête HTTP (durée, requêtes répétées)
- liens vers les services de développement (Mailpit, dbgate, phpMyAdmin)
- profiler de code (extension Excimer) : temps passé dans chaque fonction PHP, export Speedscope pour un flamegraph
Configuration du profiler de code dans le .env :
| Variable | Valeurs | Description |
|---|---|---|
EDU_PROFILER |
off, trigger (défaut), on |
trigger : profilage à la demande via le bouton Code de la barre de debug ou ?_profile=1 ; on : chaque requête est profilée |
EDU_PROFILER_KEEP |
50 |
Nombre de profils conservés |
EDU_PROFILER_BUILD |
1 (défaut), 0 |
Image Docker avec ou sans Excimer |
Voir La barre de debug et le profiler.
- Démarrer le serveur intégré :
php bin/edu start --port=8080 - Vérifier la configuration :
php bin/edu check:config(dans Docker :docker compose exec frankenphp php bin/edu check:config) - Voir la version :
php bin/edu --version - Générer un controller :
php bin/edu make:controller NomController - Générer une commande CLI :
php bin/edu make:command nom:commande - Générer une API :
php bin/edu make:api NomApi - Lancer les tests :
vendor/bin/phpunit
- Migrer de la version 2.3 à la version 2.8 (MariaDB, templates d'erreur, cache Twig,
.env, fichiers Docker) - Migrer de la version 2.2 à la version 2.3
Pour contribuer au projet, consultez le guide de contribution.
MIT License - Copyright (c) 2022-2026 Collectif Studoo