Skip to content

Releases: lizzyman04/fluxor

v1.0.5

23 May 18:09

Choose a tag to compare

[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-cache now works from any subdirectory via bin/fluxor CLI that traverses up to locate vendor/autoload.php

v1.0.4

16 May 14:44

Choose a tag to compare

[1.0.4] - 2026-05-16

Fixed

  • View::render() layout stack isolated per call, preventing state leakage across nested renders
  • View::include() output capture and rendering logic corrected
  • Data inheritance across layout chain fixed
  • View::isDebugMode() now uses App::isDebug() instead of App::isDevelopment()
  • handleNotFound() passes request URL path to findErrorHandler(), enabling scoped 404.php handlers (e.g. app/router/api/404.php)
  • handleMethodNotAllowed() passes request URL path to findErrorHandler(), enabling scoped 405.php / not-allowed.php handlers

v1.0.3

07 May 02:07

Choose a tag to compare

[1.0.3] - 2026-05-07

Added

  • Router cache management with DISABLE_FLUXOR_CACHE env var
  • composer clear-router-cache command to manually clear route cache
  • App::isDebug() method independent from isDevelopment()
  • HTML dev error page with full stack trace when APP_ENV=development AND APP_DEBUG=true

Fixed

  • Flow state accumulation between requests (handlers now cleared per dispatch)
  • .env variables not loaded before Config creation (APP_ENV/APP_DEBUG now read correctly)
  • $executed flag not set on exception paths
  • Missing stack trace output in CLI development server

v1.0.2

19 Apr 08:04

Choose a tag to compare

[1.0.2] - 2026-04-19

Added

  • Route compilation with persistent file-based cache
  • Catch-all parameters via [...slug] syntax
  • 405 Method Not Allowed response with Allow header
  • 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 Response instead of sending directly
  • Apply segmentMapper to filename in buildPatternFromFile()
  • ErrorHandler methods return Response instead of calling exit
  • Route file include isolated in static closure
  • getJsonBody() guards against empty input

Fixed

  • Flow::matchesPattern() failing to match {param} patterns registered by new Matcher
  • preg_quote called 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

07 Apr 17:22

Choose a tag to compare

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()