CHANGELOG¶
Présentation des versions du framework Edu Framework
v2.12.0 - 07/11/2026¶
features
- #197 Nouvelle commande
php bin/edu routes:list: liste les routes deapp/Config/routes.yaml(méthode, URI, contrôleur, nom), une ligne par méthode HTTP ; l'option--methodfiltre sur une méthode HTTP
maintenance
- Routage :
studoo/edu-routepasse en^1.1(liste des routes déclarées). Le nom de la route (clé deroutes.yaml) est désormais transmis au moteur de routage ;FastRouteCore::addRoute()accepte un quatrième paramètre optionnel$nameetFastRouteCore::declaredRoutes()renvoie les routes déclarées
documentation
- update La commande bin/edu : commande
routes:list
v2.11.0 - 06/11/2026¶
maintenance
- #187 Routage : le framework utilise
studoo/edu-route(^1.0), fork modernisé pour PHP 8.4 denikic/fast-route, dont aucune version n'a été publiée depuis la 1.3.0 de 2018. Aucun changement pour les applications : le format deapp/Config/routes.yaml, la syntaxe des URI (/user/{id:\d+}[/{name}]), les méthodes HTTP (la casse est conservée : une route[get]ne répond pas à une requêteGET), les pages 404 et 405, les variables de route ($request->get('id')) etgetNameToPath()fonctionnent comme avant - Dépendances :
studoo/edu-routeremplacenikic/fast-routeet ajoutepsr/http-messageetpsr/simple-cache; il prend en charge PHP 8.4 et 8.5 - Code qui utilise directement le moteur de routage :
FastRouteCore::getDispatcher()renvoie unStudoo\EduRoute\Dispatcher(au lieu deFastRoute\Dispatcher) ; sondispatch()renvoie un objetMatched,MethodNotAllowedouNotMatched(propriétéshandler,variables,allowedMethods) au lieu d'un tableau : l'accès$result[0]fonctionne encore mais est déprécié, utilisezinstanceof- une route invalide (route en double, paramètre répété, groupe capturant) lève
Studoo\EduRoute\BadRouteExceptionau lieu deFastRoute\BadRouteException, avec le même message ;Route::getNameToPath()la lève aussi pour une URI invalide. Elle est différente deStudoo\EduFramework\Core\Exception\BadRouteException(route inconnue, paramètre manquant), qui ne change pas
bug Fixes
routes.yaml: une route mal décrite (cléuri,controllerouhttpMethodabsente, liste à la place d'un texte) lève uneErrorConfigExceptionqui nomme la route (La route <hello> du fichier routes.yaml est invalide : la clé 'controller' est absente…, affiché en modedev) au lieu d'une erreur PHProutes.yaml: une valeur vide (~ou tiret orphelin) dans la listehttpMethodn'émet plus d'avertissement de dépréciation sous PHP 8.5
documentation
- update Construire une page : les trois clés d'une route
v2.10.1 - 06/11/2026¶
bug Fixes
- Template
base.html.twig(application et template interne du framework) : le bloc s'appelaittitrealors que les pages définissent{% block title %}, la balise<title>restait vide. Le bloc est renommétitle(même correction dansstudoo/edu-framework-skeleton)
maintenance
- Tests : ajout de tests d'exemple sur les controllers de l'application (
tests/App/Controller) et mise à jour des empreintes HTML deFastRouteCoreTest
documentation
- new Tester son application (tests unitaires) : démarche, installation et configuration de PHPUnit, tests d'une entité, d'un repository sur une base SQLite de test et d'un controller, DataProvider, erreurs fréquentes et exercices
- update L'arborescence : dossier
testset fichierphpunit.xml
v2.10.0 - 06/11/2026¶
new features
- Profiler : la page descriptif d'une requête affiche les variables GET, POST et de session sous forme de tableaux.
HttpRequestLoggerenregistre$_GETet$_POSTen début de requête et$_SESSIONen fin de requête (clésget,postetsessiondu log). Les variables sensibles (nom contenantpass,pwd,secret,mot_de_passeoumdp) sont masquées, et les objets en session sont enregistrés avec toutes leurs propriétés et une clé__class - Vue Logs : les variables GET / POST / session du contexte sont affichées en JSON
bug Fixes
- #174 Dépendances Symfony :
symfony/yaml,symfony/console,symfony/filesystemetsymfony/processpassent en 7.4 LTS stable (^7.4) au lieu de branchesx-dev.composer.jsonactiveprefer-stablepour ne plus résoudre de branches de développement quand une version stable existe - Console
bin/edu:Application::add(), déprécié en Symfony 7.4, est remplacé paraddCommand() - Profiler : une erreur pendant l'enregistrement de la session ne peut plus faire échouer la requête
maintenance
- Tests : migration de PHPUnit 9 vers PHPUnit 13 (
phpunit/phpunit: ^13) et dephpunit.xmlvers le schéma 13.4 (la section<coverage><include>devient<source><include>) - Tests :
HttpErrorControllerTestremet le code de réponse HTTP à 200 après chaque test, pour ne plus fausserHttpRequestLoggerTestselon l'ordre d'exécution
documentation
- update La barre de debug et le profiler : description des clés
get,postetsessiondu log d'une requête
v2.9.1 - 05/11/2026¶
bug Fixes
- Correction du package symfony/filesystem[7.2.x-dev]
v2.9.0 - 21/10/2026¶
new features
- Profiler : flamegraph intégré à l'onglet Code, sans fichier à télécharger. Trois vues s'ajoutent au tableau des fonctions : Flamegraph (appels regroupés, le plus coûteux à gauche,
#code/{token}/flame), Chronologique (ordre des appels avec axe du temps,#code/{token}/time) et Comparer (flamegraph différentiel de deux requêtes profilées, en rouge ce qui est plus lent et en bleu ce qui est plus rapide,#code/{token}/diff/{autre}). Les couleurs indiquent l'origine du code (app/framework/vendor). On peut zoomer d'un clic, remonter par le chemin d'appels ou avec Échap, rechercher une fonction (avec le temps total trouvé), afficher une infobulle et le détail de la fonction, avec un lien vers ses appelants et ses appelés. Les appels de moins de 0,1 % sont regroupés dans « … (autres) » - Barre de debug : mini-flamegraph dans le panneau du bloc Code ; un clic l'ouvre en grand dans le profiler
- Endpoint
GET /edu-code-profile: nouveauformat=flameavec les paramètresorder(heavy/time),compare(token de référence),min(élagage) etdepth(profondeur) ; nouvelles méthodesCodeProfileAggregator::flameTree()etCodeProfileAggregator::diffTree() - Déploiement sur un serveur Debian / Ubuntu avec FrankenDeploy : nouvelle commande
php bin/edu make:deployqui génère le fichierfrankendeploy.yaml(options--domain,--name,--database=mariadb|mysql|sqlite|none,--force) avec les dossiers partagés entre les déploiements (.env.local,var/logs,var/sessions,var/sqlite,public/upload) Dockerfilemulti-stage :frankenphp_base(socle commun),frankenphp_prod(image de production : HTTP sur le port 8080, utilisateur non-rootapp,php.ini-production, OPcache sans revalidation, sessions dansvar/sessions, sans Excimer ni dépendances de dev, healthcheck) etfrankenphp_dev(image de développement, ciblée explicitement parcompose.yaml). Nouveau scriptdocker-entrypoint.shqui attend la base de données avant de démarrer FrankenPHP- Variables d'environnement : nouvelle méthode
ConfigCore::loadEnv()utilisée par l'application et parbin/edu. Les fichiers.envet.env.localsont optionnels (le.env.localest prioritaire sur le.env), les variables de l'environnement du processus (Docker) sont prioritaires et lues parConfigCore::getEnv()/existEnv()même lorsquevariables_orderne contient pasE(cas dephp.ini-production). SiDATABASE_URLest définie (mysql://user:pass@host:3306/db), les variablesDB_*manquantes en sont déduites ; uneDATABASE_URLMySQL / MariaDB / PostgreSQL mal formée (Exemple: mot de passe contenant#non encodé) lève uneErrorConfigExceptionexplicite
bug Fixes
ConfigCore::getEnv()ne lève plus d'avertissement pour une variable absente (retourne une chaîne vide)bin/edudémarre sans fichier.env- Tests :
APP_ENVhérité du shell ou du conteneur de développement n'influence plus les tests (tests/bootstrap.php)
documentation
- update La barre de debug et le profiler : nouvelles sections « Le flamegraph intégré » et « Comparer deux requêtes » (avec captures d'écran), mini-flamegraph de la barre de debug, paramètres
format=flame,order,compare,minetdepthde l'API - new Migrer de la version 2.8 à la version 2.9 : mise à jour du framework, fichiers Docker (
Dockerfilemulti-stage,docker-entrypoint.sh,.dockerignore,targetdanscompose.yaml),.gitignore(.env.local,composer.lock),.gitattributespour les scripts shell, changements du chargement des variables d'environnement - new Déployer son application : préparation du serveur,
make:deploy, variables d'environnement, déploiement, import de la base, dossiers partagés, commandes du quotidien, image de production - update La commande bin/edu : commande
make:deploy - update L'application dans Docker : lien vers l'image de production
v2.8.0 - 20/10/2026¶
new features
- Profiler de code dans la barre de debug : le temps passé dans chaque fonction PHP d'une requête HTTP est mesuré par l'extension Excimer (profiler par échantillonnage toutes les 0,1 ms, compatible FrankenPHP en mode classique et worker). Le profilage est à la demande (
EDU_PROFILER=triggerpar défaut) : le nouveau bloc Code de la barre de debug pose le cookieedu_profile=1(ou paramètre?_profile=1) et reste actif jusqu'au clic sur Désactiver ;EDU_PROFILER=onprofile chaque requête,offdésactive le profiler. Le profil est rattaché au token de la requête et stocké compressé dans la tableserv_code_profiles(EDU_PROFILER_KEEPprofils conservés, 50 par défaut). Le bloc affiche le temps profilé et le top 3 des fonctions ; le nouvel onglet Code du profiler (/_debug/profiler#code/{token}) liste toutes les fonctions (temps propre / inclusif, filtre par origineapp/framework/vendor), leurs appelants et appelés, et exporte le profil au format Speedscope pour un flamegraph. Nouvel endpoint interneGET /edu-code-profile(mode dev uniquement). L'image Docker installe Excimer (argument de buildEDU_PROFILER,EDU_PROFILER_BUILD=0pour l'exclure) etphp bin/edu check:configsignale l'extension comme recommandée - Profiler : la section de résumé d'une requête n'affiche plus que l'URL ; les informations détaillées (méthode, statut HTTP, IP, SAPI, durée, mémoire, date, token) ont été retirées de l'en-tête pour alléger l'affichage
documentation
- new Les fonctionnalités : toutes les fonctionnalités du framework regroupées par thème d'apprentissage, avec la notion travaillée et son équivalent dans Symfony
- new Migrer de la version 2.3 à la version 2.8 : étapes de migration (sauvegarde et passage de MySQL à MariaDB, templates d'erreur, cache Twig, variables du
.env, fichiers Docker), changements et nouveautés des versions 2.4 à 2.8 - update La barre de debug et le profiler : nouvelle section « Le profiler de code » (installation, modes, lecture du profil avec captures d'écran, lecture du flamegraph avec Speedscope, API)
- update Installation avec Docker : variables d'environnement
EDU_PROFILER,EDU_PROFILER_KEEPetEDU_PROFILER_BUILD - update Prérequis : installation de l'extension optionnelle
excimerhors Docker
v2.7.3 - 17/10/2026¶
new features
- Profiler : la vue Recherche (
/_debug/profiler#search) gagne les mêmes onglets de filtrage par famille de statut que la vue des logs —Tous / 2xx / 3xx / 4xx / 5xx, avec le nombre de requêtes par famille en badge. Un clic filtre les résultats sur la famille sélectionnée (l'ongletTousaffiche toutes les requêtes), l'onglet actif est mis en évidence et le champ Statut du formulaire de recherche est synchronisé ; les compteurs proviennent de l'API/edu-logs(calculés côté serveur, ils couvrent l'ensemble des requêtes correspondant aux autres filtres) et restent indépendants du filtre de statut, comme dans la vue des logs
bug Fixes
- Barre de debug : correction de l'alignement des colonnes contenant des liens (DbGate, phpMyAdmin, Mailpit) dans le panneau
documentation
- update La barre de debug et le profiler : onglets de filtrage par famille de statut documentés pour les vues Logs et Recherche (clic pour filtrer, onglet actif, synchronisation du champ Statut du formulaire)
v2.7.2 - 17/10/2026¶
bug Fixes
- Barre de debug : correction finale de l'alignement du bouton de fermeture à droite (styles flex, hauteur et alignement)
v2.7.1 - 17/10/2026¶
bug Fixes
- Barre de debug : correction du décalage du bouton de fermeture à droite, amélioration du cloisonnement CSS pour les boutons
v2.7.0 - 17/10/2026¶
new features
- Barre de debug : le bloc DEV liste les services de développement avec leurs URLs cliquables (application HTTP/HTTPS, MariaDB, Mailpit et son SMTP, DbGate, phpMyAdmin) — ports lus dans le
.env(défauts ducompose.yaml), variables transmises au conteneurfrankenphp - Exécution de l'application dans Docker via FrankenPHP : nouveau service web
frankenphpdans lecompose.yaml(PHP 8.4, HTTPS et HTTP/3),Dockerfileavec les extensions requises par le framework,Caddyfilepilotable parSERVER_NAME, variables du.envtransmises au conteneur (surcharges réseauDB_HOST,DB_SOCKET,MAILER_DSN), conteneurs préfixés parAPP_NAME, ports etSERVER_NAMEparamétrables dans le.env(mode HTTPS local :SERVER_NAME=localhost), healthcheck MariaDB — le flux classiquephp bin/edu startreste inchangé
bug Fixes
- Profiler : les requêtes servies par FrankenPHP ne s'enregistraient pas dans la base des logs — seul le serveur PHP intégré (
php bin/edu start) la remplissait, sans indicateur de performance par requête. La nouvelle classeHttpRequestLoggerjournalise désormais chaque requête traitée par le framework, quel que soit le SAPI (serveur intégré, FrankenPHP, FPM, ...), avec le serveur à l'origine (sapi, affiché et filtrable dans le profiler via le champ SAPI et le paramètresapide l'API/edu-logs), le temps d'exécution (execution_time_ms) et la mémoire utilisée (memory_mb) par requête, mesurés comme la barre de debug. Comme le profiler de Symfony, la ligne est réservée en début de requête puis complétée en fin : le bloc DevTool de la barre de debug affiche le token de la requête et pointe vers la nouvelle page descriptif de la requête (#request/{token}: statut, méthode, URL, IP, SAPI, durée, mémoire, ligne brute). La commandephp bin/edu startn'écrit plus dans la base (affichage console uniquement) : seules les requêtes exécutées par PHP sont journalisées (fichiers statiques servis directement par le serveur web exclus), et la base partagée entre les serveurs est protégée contre les verrous (PRAGMA busy_timeout). La barre de pagination du profiler est supprimée : la navigation se fait par les filtres, le sélecteur « Résultats » et les raccourcis « 10 derniers » / « Dernier » (le paramètrepagede l'API reste supporté)
documentation
- new L'application dans Docker : architecture, démarrage/arrêt, variables d'environnement, ports et coexistence de plusieurs projets, mode HTTPS local (certificat auto-signé, limitation
https://127.0.0.1), vérification des prérequis dans le conteneur, dépannage - update Démarrer les services : MySQL devient MariaDB, service FrankenPHP dans le tableau des ports, commandes par version, corrections de liens
- update La barre de debug et le profiler : collecte de toutes les requêtes par
HttpRequestLoggerquel que soit le serveur (clésapi, temps d'exécution et mémoire par requête), token de la requête dans le bloc DevTool, nouvelle page descriptif d'une requête (#request/{token}), profiler disponible sur les deux serveurs (http://localhost:8042/_debug/profilerethttps://localhost/_debug/profiler), limitations (fichiers statiques non journalisés, IP du réseau Docker, mode worker FrankenPHP) ; liste des services de développement (URLs cliquables) dans le bloc DEV
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