Skip to content

Releases: WebFiori/framework

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 12:11
7e994d2

3.0.0 (2026-06-14)

WebFiori Framework v3.0.0

Highlights

WebFiori v3 is a ground-up modernization of the framework, targeting PHP 8.1+ with attribute-driven development, pluggable storage backends, and a security-
first design.

What's New

ServiceRouter — Zero-Boilerplate API Routing

  • ServiceRouter::discover() auto-registers routes from #[RestController] classes, plain WebService subclasses, and WebServicesManager managers
  • Recursive namespace scanning with kebab-case URL derivation from directory structure
  • Dynamic runtime resolution via ServiceRouter::dynamic()
  • services:list CLI command for introspection
  • Production route caching (routes:cache / routes:clear)

Security & Authorization

  • RBAC + ABAC with role inheritance and policy evaluation
  • #[PreAuthorize] and #[RequiresAuth] attributes for declarative endpoint protection
  • Access::can() falls back to SecurityPrincipal::getRoles() when no internal mapping exists
  • Session encryption at rest (AES-256-GCM)
  • SRI integrity hashes on external resources

Middleware

  • Transitive dependency auto-resolution — assign a leaf middleware, the entire chain is pulled in automatically
  • Priority-based execution with topological sort
  • Built-in: CSRF, CORS, rate limiting, HTTP caching (ETag/304), session, maintenance mode, authorization

Database

  • Migrations with full lifecycle: run, rollback, fresh, status, dry-run, skip, step (interactive)
  • Database seeders
  • Connection pooling and performance monitoring
  • Repository pattern with pagination (offset + cursor)

Sessions

  • CacheSessionStorage — back sessions with any cache backend (Redis, file)
  • Fixed: session cookie reuse when storage is cleared (no more infinite loop)

Health Checks

  • HealthCheck::getChecks() for introspection
  • HealthCheck::afterAll() lifecycle hook for notifications

Job Queue

  • Priority-based dispatch with delayed execution
  • Automatic retry with configurable backoff
  • Payload encryption (AES-256-GCM)
  • Pluggable storage via QueueStorage interface

Dependency Injection

  • Container with bind(), singleton(), instance(), and auto-resolution
  • Integrated with ServiceRouter for constructor injection in API services

Observability

  • Structured file-based logging with daily rotation and level filtering
  • Health check HTTP endpoint (200/503)

Breaking Changes

None. v3 is backward compatible with v3.0.0-RC applications.

Requirements

  • PHP 8.1 or later
  • Extensions: json, mbstring, fileinfo, openssl

Upgrade

bash
composer require webfiori/framework:^3.0

Documentation

Full documentation at webfiori.com/learn

v3.0.0-RC.5

v3.0.0-RC.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 May 11:28
07efbe9

3.0.0-RC.5 (2026-05-31)

⚠ BREAKING CHANGES

  • Scheduler web UI and APIs removed. Use CLI commands (php webfiori scheduler) for task management instead.
  • WebFiori\Framework\Util class has been removed. All methods were either unused, duplicated by existing framework methods, or trivially inlineable.
  • Removed MySQLSessionsTable, MSSQLSessionsTable, MySQLSessionDataTable, and MSSQLSessionDataTable classes. Use
  • session: SessionStorage::gc() signature changed from gc() to gc(string $olderThan, int $maxCount = 0). Custom storage implementations must update their gc() method signature.
  • deps: Application code using Cache::get(), Cache::set(),

Features

  • (cli): Run Seeders With Migrations (7796e93)
  • Add env: to Class Driver (89cd39d)
  • Add property and constant (bebe151)
  • Add Arguments Support in Add DB Connection Command (8223428)
  • add CORS middleware (75d4048), closes #341
  • add CSRF protection middleware (9171c38), closes #333
  • Add Dependencies and Envs (e3950b6)
  • add dependency-based middleware ordering (cc8c201), closes #334
  • add FileAccessStorage and DatabaseAccessStorage for RBAC (cc55249)
  • add health check endpoint with auto-discovery (2b1701d), closes #339
  • add HTTP response caching middleware (ETag / Cache-Control) (ae9b1ad), closes #352
  • add maintenance mode (down/up commands) (9d5202c), closes #351
  • Add New Method" method (4d486b2)
  • add rate limiting middleware (8db4e79), closes #335
  • add RBAC/ABAC system with backward compatibility (82b43ba)
  • Added getCode (ff37c27)
  • Added migrations:fresh Command (d5f732b)
  • Added a Script to Update Version (e998c47)
  • Added Options to AttributeTableWriter (1d6340c)
  • Added Scan for Seeders in Dry Run (a2697f8)
  • Added Support For Args in Add SMTP Conn (4554cca)
  • Added Support for Removing Callbacks (6e83132)
  • allow middleware instances in route definitions (76a3dc6), closes #340
  • Attributes (9e11d2b)
  • Chaining (d3b2407)
  • cli: add --all-connections flag and connection validation for migrations (5a4daea), closes #326
  • cli: add migrations:skip command for baselining (4cbde82), closes #320
  • Code Reuse Helpers (f54ed91)
  • Create Attributes Table (6f4a7fc)
  • Create Background Task Command (fab0c39)
  • Create CLI Command (3c88ecf)
  • Create CRUD Resource (78d5ecf)
  • Create Domain Entity (3c4944c)
  • Create Middleware Command (2b189be)
  • Create Migration (989cf6d)
  • Create Repo (498c214)
  • Create Seeder (b3038d0)
  • Create Table Command (6fe3be5)
  • deps: upgrade webfiori/cache from v2 to v3 (c24817d), closes #301
  • Doc-block Builder (0eb7760)
  • Env Vars for Json Driver (f28f977)
  • integrate event system into framework (d1bed19), closes #347
  • integrate queue system into framework (7eff48d), closes #349
  • integrate webfiori/container into framework (2b07a02), closes #345
  • integrate webfiori/log into framework (c596620), closes #336
  • migrations: enable recursive discovery of migrations in subdirectories (b855c18), closes #317
  • Optional Config Var (b34cd18)
  • Rollback Migration on Error (e78d372)
  • Rollback of Migrations (078c94f)
  • scheduler: add scheduler:daemon command with time-limited execution (3d3cb1d), closes #300
  • scheduler: Added Support for env: Syntax (8240078)
  • Split Migrations Count from Seeders Count (69c69d6)
  • Web Services Writer (ff39f02)

Bug Fixes

Read more

v3.0.0-RC.4

v3.0.0-RC.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 May 12:08
197a23b

3.0.0-RC.4 (2026-05-13)

Features

  • cli: add --all-connections flag and connection validation for migrations (5a4daea), closes #326
  • cli: add migrations:skip command for baselining (4cbde82), closes #320

Miscellaneous Chores

v3.0.0-RC.3

v3.0.0-RC.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 May 11:07
d49db11

3.0.0-RC.3 (2026-05-11)

Features

  • migrations: enable recursive discovery of migrations in subdirectories (b855c18), closes #317

Bug Fixes

  • Middleware Discovery (91aaf4b), closes #319
  • migrations: close database connection after command execution (e271833)
  • router: resolve middleware by class reference in addMiddleware() (6dc18da), closes #318
  • tests: reset connection pool in CLITestCase tearDown (cb813cb)

Miscellaneous Chores

v3.0.0-RC.2

v3.0.0-RC.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 May 08:17
a39b0ae

3.0.0-RC.2 (2026-05-04)

Bug Fixes

Miscellaneous Chores

v3.0.0-RC1

v3.0.0-RC1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Apr 22:20
346bec3

3.0.0-RC1 (2026-04-29)

⚠ BREAKING CHANGES

  • deps: Application code using Cache::get(), Cache::set(),

Features

  • deps: upgrade webfiori/cache from v2 to v3 (c24817d), closes #301
  • scheduler: add scheduler:daemon command with time-limited execution (3d3cb1d), closes #300

Bug Fixes

  • correct parent constructor call and static method usage in ExtendedWebServicesManager (b110a38), closes #296
  • off-by-one in middleware after() and afterSend() loops (1faf4a1), closes #299
  • Proper Fix for The Issue (3bb8970)
  • remove silent try-catch in StartSessionMiddleware::after() (9c5c3b6), closes #298
  • routing: preserve query string on redirect and prevent crash on root sub-routes (007c799)
  • use $response instance instead of static Response::addHeader() in StartSessionMiddleware (907984c), closes #297

Miscellaneous Chores

  • bump version to v3.0.0-RC1 (2026-04-30) (a9d4117)
  • Merge pull request #312 from WebFiori/dev (a629646)

v3.0.0-RC0

v3.0.0-RC0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Apr 22:43
54e891d

3.0.0-RC0 (2026-04-08)

Features

  • (cli): Run Seeders With Migrations (7796e93)
  • Add env: to Class Driver (89cd39d)
  • Add property and constant (bebe151)
  • Add Arguments Support in Add DB Connection Command (8223428)
  • Add Dependencies and Envs (e3950b6)
  • Add New Method" method (4d486b2)
  • Added getCode (ff37c27)
  • Added migrations:fresh Command (d5f732b)
  • Added Options to AttributeTableWriter (1d6340c)
  • Added Scan for Seeders in Dry Run (a2697f8)
  • Added Support For Args in Add SMTP Conn (4554cca)
  • Attributes (9e11d2b)
  • Chaining (d3b2407)
  • Code Reuse Helpers (f54ed91)
  • Create Attributes Table (6f4a7fc)
  • Create Background Task Command (fab0c39)
  • Create CLI Command (3c88ecf)
  • Create CRUD Resource (78d5ecf)
  • Create Domain Entity (3c4944c)
  • Create Middleware Command (2b189be)
  • Create Migration (989cf6d)
  • Create Repo (498c214)
  • Create Seeder (b3038d0)
  • Create Table Command (6fe3be5)
  • Doc-block Builder (0eb7760)
  • Env Vars for Json Driver (f28f977)
  • Optional Config Var (b34cd18)
  • scheduler: Added Support for env: Syntax (8240078)
  • Split Migrations Count from Seeders Count (69c69d6)
  • Web Services Writer (ff39f02)

Bug Fixes

  • Access Modifier (95016a8)
  • App Directories Creation (a8ee667)
  • Check for Empty --class-name (e5f845c)
  • CLI Test Case Class Fix (ac64c01)
  • cli: Deleting All Records of Changes Table (61d2107)
  • cli: object-to-string conversion errors (e1a6e81)
  • cli: Run Migrations With No Tables Check (b5e9f06)
  • Fix Session Tables Creation (f318ba4)
  • Getting Requested URI (79f47a8)
  • Initialization Path (192c2f0)
  • Max/Min Values Issue (b57b6bc)
  • Method Call (f598610)
  • Multiple Fixes (bd09605)
  • Request Method not Allowed (868e123)

Miscellaneous Chores

v3.0.0-beta.31

v3.0.0-beta.31 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Oct 22:15
d81cfd0

3.0.0-beta.31 (2025-10-27)

Bug Fixes

  • Bug in Finding Class Loader Path (6831a96)
  • Show Framework Logo (e47f1a5)

Miscellaneous Chores

v3.0.0-Beta.30

v3.0.0-Beta.30 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Oct 21:44
3e82c23

3.0.0-Beta.30 (2025-10-21)

Features

  • Added a Script to Update Version (e998c47)

Bug Fixes

Miscellaneous Chores

v3.0.0-Beta.29

v3.0.0-Beta.29 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Oct 12:40
22433ff

3.0.0-Beta.29 (2025-10-09)

Bug Fixes

Miscellaneous Chores