CHANGELOG¶
Présentation des versions du framework Edu Framework
v2.6.3 - 15/10/2026¶
bug Fixes
- Mise à jour de
zircote/swagger-php(4.x-dev → 5.8.*) : la librairie n'était pas compatible avec PHP 8.4 et supérieur — la commandevendor/bin/openapiaffichait l'erreurConstant E_STRICT is deprecatedet produisait un fichier incomplet
documentation
- update Construire une API : suppression de la note de contournement (script
generate-openapi.php), la commandevendor/bin/openapiest de nouveau fonctionnelle avec PHP 8.4 et supérieur
v2.6.2 - 15/10/2026¶
documentation
- new Support Mermaid dans la documentation : les schémas s'adaptent automatiquement au thème clair/sombre et se chargent uniquement sur les pages qui en contiennent
- update Protéger un formulaire (CSRF) : le schéma ASCII devient un diagramme de séquence Mermaid
- new Le MVC, c'est quoi ? : flowchart du cycle d'une requête avec les classes réelles (FastRouteCore, Controller, Repository, TwigCore)
- update Comment faire un controller ? : le schéma statique est remplacé par un flowchart du cycle de vie de HelloController
- new Construire le CRUD : diagramme de classes VilleController / VilleRepository / Ville / DatabaseService
- new Les erreurs HTTP : flowchart du pipeline d'erreurs avec les branches dev/production
- update Comment faire un formulaire ? : diagramme de séquence du pattern PRG (Post/Redirect/Get)
- new DatabaseService : La gestion des données : diagramme de classes de la connexion (adaptateurs mysql, mariadb, sqlite)
- new La barre de debug et le profiler : flowchart du flux des logs vers le profiler
- new Route : générer une URL à partir du nom d'une route : flowchart de la génération d'URL et de la BadRouteException
v2.6.1 - 15/10/2026¶
new features
- Migration de MkDocs vers ProperDocs, le fork maintenu de MkDocs 1.x — MkDocs n'est plus maintenu depuis août 2024 et son dépôt est fermé aux contributions extérieures. ProperDocs est un remplacement direct (drop-in) : le thème Material et tous les plugins restent inchangés, la configuration devient
properdocs.ymlet les commandesmkdocs build/mkdocs servedeviennentproperdocs build/properdocs serve
bug Fixes
- Les cartes sociales (og:image) sont de nouveau générées : le logo du plugin social est résolu via le logo du thème (préfixé par le dossier de documentation)
documentation
- new Use case "VILLE" : STEP 1 et Refactoring : ajout à la navigation (contenus retirés depuis)
- update Contribuer pour la docs : installation et lancement avec ProperDocs
- suppression de la page obsolète
dataservice-insert.md(contenu intégré à Construire le CRUD)
v2.6.0 - 14/10/2026¶
new features
- Nouveau service
CsrfServicepour protéger les formulaires contre les attaques CSRF (Cross-Site Request Forgery) selon le pattern "Synchronizer Token" : jeton aléatoire (CSPRNG) cloisonné par nom de route, comparaison protégée contre les attaques temporelles (hash_equals), rotation du jeton après chaque validation réussie. Nouvelle fonction Twigcsrf_token('nom_route')pour générer le champ caché du formulaire et méthodeRequest::isCsrfTokenValid('nom_route')pour la validation dans le controller (le jeton peut aussi être transmis dans l'en-tête HTTPX-CSRF-TOKENpour les appels AJAX). Démo applicative sur la route/medecin/importet documentation complète docs/build/csrf.md
v2.5.0 - 08/10/2026¶
new features
- #149 Nouvelle commande
php bin/edu make:entity: génération de l'entité (app/Entity) et de son repository (app/Repository) — mode interactif ou option--fields, getters et setters fluides camelCase typés, hydratation avec casts dans le repository @bfoujols - #150 Les paramètres d'identité du framework (name, version, date_version, php_version) sont personnalisables via le fichier
eduframe.ymlà la racine du framework (lu depuisvendor/dans les projets) — plus besoin de modifierConfigCore.php, exceptionErrorConfigExceptionexplicite si le fichier est invalide @bfoujols - #76 Pages d'erreur HTTP mises en forme (404, 405, 403, 500) : templates autonomes et stylés dans
app/Template/error/, nouveauHttpError403Controller, la classeErrorHttpStatusExceptionpermet de lever une erreur HTTP depuis un controller (Exemple : accès interdit 403), toute exception non gérée affiche la page 500 avec le message de l'exception en mode développement (masqué en production). Le templatehttp-Default.html.twigdevienthttp-500.html.twig. Le nom du framework n'est plus affiché sur les pages d'erreur (titre et pied de page) @bfoujols
bug Fixes
- #76 Correction de l'affichage de la barre de debug : les styles globaux de la page hôte (ex:
a { margin-top: 1.5rem; }) ne cassent plus l'alignement des blocs de la barre — reset CSS sur les liens de la toolbar, immunisée contre les feuilles de style de l'application @bfoujols
documentation
- new La commande make:entity : génération d'une entité et de son repository
- update Construire le CRUD : note sur la génération des fichiers avec
make:entity - update Installation : les paramètres du framework (eduframe.yml)
- new Les erreurs HTTP : pages 403/404/405/500, personnalisation,
ErrorHttpStatusException
Release notes for v2.5.0
v2.4.0 - 08/10/2026¶
new features
- #147 Un controller peut maintenant gérer plusieurs routes via plusieurs méthodes : la clé
controllerdu fichier "app/Config/routes.yaml" accepte la syntaxeController\VilleController::index. Sans méthode explicite, la méthodeexecute()est appelée comme avant (100 % rétro-compatible) @bfoujols - La méthode appelée est validée par le framework (publique, non statique, paramètre de type Request, retour string|null) et lève une
ErrorControllerExceptionavec un message explicite en cas d'erreur @bfoujols - #75 Gestion des fichiers téléversés (
$_FILES) dansRequest: normalisation automatique de la structure (champ simple et multi-fichiers), méthodeshasFile(),getFile(),getFiles(),isValid(),getExtension()etmove(), démo applicative/medecin/import@bfoujols - #64 Activation du cache TWIG : les templates compilés sont stockés dans
var/cache/twig(nouvelle clé de configurationcache_path), recompilation automatique des templates modifiés (auto_reload) @bfoujols - #65 Nouvelle commande
php bin/edu cache:clearpour supprimer le cache de l'application (dossiervar/cache) @bfoujols
bug Fixes
- #86 Le fichier de configuration des routes est vérifié avant lecture : une exception
ErrorRouteConfigNotExistExceptionavec un message explicite (chemin attendu, configurationroute_config_path, sensibilité à la casse sur Linux) remplace le fatal error du composant Yaml quand "routes.yaml" est introuvable @bfoujols
documentation
- new Un controller, plusieurs routes : la syntaxe
Controller\Class::methoddans le fichier des routes - new Gestion des fichiers (upload) : téléversement de fichiers dans Request
- update La commande bin/edu : commande
cache:clear - update Installation : erreur sur le fichier des routes et sensibilité à la casse sur Linux
- update Route : note sur la syntaxe
Controller\Class::method
Release notes for v2.4.0
v2.3.2 - 05/10/2026¶
new features
- Add documentation for building APIs and CRUD operations @bfoujols
bug Fixes
- #143 Mettre à jour les chemins de sqlite et des logs pour utiliser des chemins relatifs @bfoujols
- fix: mettre à jour la vérification de version PHP à 8.4 et ajuster les messages d'erreur @bfoujols
- test: remplacer sha1 par hash('sha256', ...) dans FastRouteCoreTest @bfoujols
Release notes for v2.3.2
https://github.com/studoo-app/edu-framework/milestone/v2.3.2
v2.3.1 - 05/10/2026¶
bug Fixes
- #143 Mettre à jour les chemins de sqlite et des logs pour utiliser des chemins relatifs @bfoujols
Release notes for v2.3.1
https://github.com/studoo-app/edu-framework/milestone/v2.3.1
v2.3.0 - 05/10/2026¶
new features
- #136 Implement SQLite logging service for server request logs @bfoujols
- #136 Add BufferFormat and BufferToServer classes for log formatting @bfoujols
- #136 Add logs navigation in the debug bar @bfoujols
- #136 Replace in-bar logs panel with a Symfony-style profiler page @bfoujols
- #136 Enhance filtering capabilities and add status family counting @bfoujols
- #69 Add custom listening socket (#69) Thanks @CapelleGab
- #122 Add Manage DB by dbgate @bfoujols
- #120 Add MailPit Service @bfoujols
- #97 Add slash command @bfoujols
- Update PHP minimum version 8.2 -> 8.4 (composer, bin/edu, CI, doc) @bfoujols
- Update dependencies (vlucas/phpdotenv v5.7, nette/php-generator, zircote/swagger-php, symfony/yaml 6.3 -> 6.4) @bfoujols
bug Fixes
- #136 Make SQLite logging non-blocking and resilient @bfoujols
- #136 Send proper HTTP status codes from error controllers @bfoujols
- #136 Gate debug routes on SQLite availability to prevent PDOException @bfoujols
- #136 Buffer stream chunks into complete lines to preserve adjacent request logs @bfoujols
- #130 github action E: Package 'netcat' has no installation candidate @bfoujols
- #129 run command taskfile before-commit @bfoujols
- Fix CI failure on profiler page and logs endpoint @bfoujols
- Fix CI failure on debug toolbar (missing semicolon) and deprecated dynamic property @bfoujols
- Fix debug toolbar always showing an empty controller instead of "aucun" (Request::hasHander always true) @bfoujols
- Fix PHP 8.5 deprecation (PDO::MYSQL_ATTR_INIT_COMMAND -> PDO\MYSQL::ATTR_INIT_COMMAND) @bfoujols
- Fix FastRouteCoreTest failures caused by APP_ENV state leaking between tests @bfoujols
- Fix security advisories on symfony/yaml (CVE-2026-45304, CVE-2026-45305, CVE-2026-45133) @bfoujols
documentation
- new Migrer de la version 2.2 à la version 2.3
- new La barre de debug et le profiler
- update Start/Stop l'application : options de la commande
start - update Comment installer les services : MailPit et dbgate
- update Avant de démarrer : extension
pdo_sqliteet PHP 8.4 minimum - update L'arborescence du projet : correction du fichier
compose.yaml
Release notes for v2.3.0
https://github.com/studoo-app/edu-framework/milestone/v2.3.0
v2.2.1 - 23/08/2024¶
new features
- #119 add Request::getBody() @bfoujols
bug Fixes
- #117 Fix class not use in API controller @bfoujols
- Fix Doc install pip package
Release notes for v2.2.1
v2.2.0 - 08/08/2024¶
new features
- #112 Implement OpenAPI @bfoujols
bug Fixes
Release notes for v2.2.0
v2.1.0 - 20/06/2024¶
new features
- #87 À partir du nom d'une route, reconstruire URL getNameToPath()
- #39 Mise en place SQLite
- #105 Nouvelle documentation https://studoo-app.github.io/edu-framework
- #86 Implement codeSpace by GitHub
bug Fixes
- #96 Problème d'installation de phpunit 11 @pbentura @RaphaelBensoussan
- #92 Problème de TestUnit sur FastRouteCore
Release notes for v2.1.0
https://github.com/studoo-app/edu-framework/milestone/v2.1.0
v2.0.2 - 24/05/2024¶
bug Fixes
- #94 fix patch root by @bfoujols in https://github.com/studoo-app/edu-framework/pull/95
Release notes for v2.0.2
https://github.com/studoo-app/edu-framework/milestone/v2.0.2
v2.0.1 - 15/05/2024¶
bug Fixes
- #88 Correction sur le probleme avec DatabaseService dans la ligne de command
Release notes for v2.0.1
https://github.com/studoo-app/edu-framework/milestone/v2.0.1
v2.0.0 - 06/04/2024¶
new features
- #73 ajout de la commande
php bin/edu make:apipour générer un controller de type API - #70 ajout de la commande
php bin/edu make:commandpour générer une commande console - #59 ajout d'une page par défaut sur la route
deprecations
bug Fixes
documentation
- Nouvelle interface et organisation par chapitre
- new Request : La gestion des requêtes HTTP
- update Comment installer EduFrame : Nouvelle installation par version
- update Comment installer les services : Refactoring Docker
- update Arborescence : Nouvelle arbo v2.0
- update Comment faire un controller : Plus de detail
- update Comment faire un post dans un controller : Plus de detail
Release notes for v2.0.0
https://github.com/studoo-app/edu-framework/milestone/v2.0.0
v1.2.0 - 25/03/2024¶
new features
- #66 ajout de la commande
php bin/edu startpour démarrer le serveur de développement - #62 ajout de la commande
php bin/edu check:configpour vérifier la configuration du framework - #26 Implement PHPDebugBar
bug fixes
- #81 Probleme de récupération des variables dynamiques passées dans la route via {}
Release notes for v1.2.0
https://github.com/studoo-app/edu-framework/milestone/v1.2.0
v1.1.0 - 03/2024¶
Version beta de la bar de debug avec les fonctionnalités suivantes :
- Mise en place de la bar de debug en beta sur environnement de développement
- Refonte de docker pour l'installation des services
- Correction de bugs mineurs
- Docker : correction sur le reseau des services Mydql et PhpMyAdmin
v1.0.0 - 2024¶
Version définitive du framework avec les fonctionnalités suivantes :
- Création de controller via la commande
php bin/edu make:controller
v0.6.0 - 2023¶
Version stable du framework avec les fonctionnalités suivantes :
- Création de controller
- Création de template
- Création de route
- Mise en place de la base de données
v0.5.0 - 2023¶
Versions de développement du framework avec les fonctionnalités suivantes :
- Mise en place et conception de l'architecture du framework (MVC)
- plusieurs POC des couches du MVC
- Tests unitaires
- Mise en place de la documentation du framework (Writerside)
- Gestion de la configuration du framework (DotEnv)
- Gestion de dépendances (Composer)
- Gestion des services (Docker)
v0.1.0 - 2022¶
Début du projet Edu Framework