Releases: lizzyman04/fluxor
Releases · lizzyman04/fluxor
v1.0.5
[1.0.5] - 2026-05-23
Fixed
- Route cache stored in project
storage/cache/instead of/tmp/, preventing conflicts between multiple simultaneous Fluxor projects composer clear-router-cachenow works from any subdirectory viabin/fluxorCLI that traverses up to locatevendor/autoload.php
v1.0.4
[1.0.4] - 2026-05-16
Fixed
View::render()layout stack isolated per call, preventing state leakage across nested rendersView::include()output capture and rendering logic corrected- Data inheritance across layout chain fixed
View::isDebugMode()now usesApp::isDebug()instead ofApp::isDevelopment()handleNotFound()passes request URL path tofindErrorHandler(), enabling scoped404.phphandlers (e.g.app/router/api/404.php)handleMethodNotAllowed()passes request URL path tofindErrorHandler(), enabling scoped405.php/not-allowed.phphandlers
v1.0.3
[1.0.3] - 2026-05-07
Added
- Router cache management with
DISABLE_FLUXOR_CACHEenv var composer clear-router-cachecommand to manually clear route cacheApp::isDebug()method independent fromisDevelopment()- HTML dev error page with full stack trace when
APP_ENV=developmentANDAPP_DEBUG=true
Fixed
- Flow state accumulation between requests (handlers now cleared per dispatch)
.envvariables not loaded before Config creation (APP_ENV/APP_DEBUG now read correctly)$executedflag not set on exception paths- Missing stack trace output in CLI development server
v1.0.2
[1.0.2] - 2026-04-19
Added
- Route compilation with persistent file-based cache
- Catch-all parameters via
[...slug]syntax 405 Method Not Allowedresponse withAllowheader- Request attributes for middleware data passing
- Route specificity ordering (static → dynamic → catch-all)
Changed
- Router passes HTTP method to Matcher for method-aware dispatching
- Dispatcher returns
Responseinstead of sending directly - Apply segmentMapper to filename in buildPatternFromFile()
- ErrorHandler methods return
Responseinstead of callingexit - Route file
includeisolated in static closure getJsonBody()guards against empty input
Fixed
Flow::matchesPattern()failing to match{param}patterns registered by new Matcherpreg_quotecalled before placeholder substitution breaking dynamic parameters- Groups
(name)now correctly transparent in URL patterns scandir()non-determinism resolved by compile-time sort
v1.0.1
Added
- CORS support with global and per-route configuration
- Fetch HTTP client (cURL-based, zero dependencies)
- Config locking mechanism for critical settings
- Global
fetch()helper function
Changed
- PHP 8.4 compatibility with explicit nullable types
- Array spread operator replacing
array_merge() - String interpolation replacing concatenation
- Global namespace prefix for internal PHP functions
Fixed
- Headers already sent warning in ExceptionHandler
- Nullable parameter type in Response::download()