Releases: WebFiori/framework
Releases · WebFiori/framework
Release list
v3.0.0
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
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
propertyandconstant(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:freshCommand (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
v3.0.0-RC.4
v3.0.0-RC.3
3.0.0-RC.3 (2026-05-11)
Features
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-RC1
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
v3.0.0-RC0
3.0.0-RC0 (2026-04-08)
Features
- (cli): Run Seeders With Migrations (7796e93)
- Add
env:to Class Driver (89cd39d) - Add
propertyandconstant(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:freshCommand (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
- Added
.gitkeep(ec80899) - Added CS Fixer (4f87f0d)
- CS Fixer (e281dfa)
- Fix Storage Dir Name (fcfbc85)
- Merge pull request #273 from WebFiori/dev (21b650e)
- Merge pull request #276 from WebFiori/dev (785add2)
- Merge pull request #277 from WebFiori/refactor-create (9c06b94)
- Merge pull request #281 from WebFiori/dev (fc52e00)
- Merge pull request #282 from WebFiori/dev (a36adc0)
- Merge pull request #295 from WebFiori/dev (317ea3b)
- Pump-Up Database to V1.2 (f8af600)
- release v3.0.0-RC0 (b92e3da)
- Remove Funding Info (29a9e00)
- Remove Non-Needed Files (3e64be3)
- Rename Folders (ff3f35e)
- Rename Folders (3afeaec)
- Run CS Fixer (94775c5)
- Update issue templates (e6a10a8)
- Update Sonar Config (7d230c9)
- Updated Core Libraries (641c4cf)
- Updated Framework Verstion (b5913c0)
- Workflow Name Correction (1b72dbb)
v3.0.0-beta.31
v3.0.0-Beta.30
3.0.0-Beta.30 (2025-10-21)
Features
- Added a Script to Update Version (e998c47)
Bug Fixes
- Metadata (84facc3)
Miscellaneous Chores
v3.0.0-Beta.29
3.0.0-Beta.29 (2025-10-09)
Bug Fixes
- API Creation (d3c384f)
- Command Writer (338e8d2)
- Fix Test Case (6b26e2f)
- Fix Test Cases (1086336)
- Fix Test Cases (0c914de)
- Fixes and Tests Refactoring (5ff31ab)
- Getting Arg Value in CLI (c56b9bf)
- Migrations Command (ce54748)
- Namespaces (e51d354)
- References to Classes (a140646)
- Tasks Names Check (3c80893)
- Test Cases (f78c6d5)
- Test Classes (cd68b49)
- Theme Creation (6864c23)
- Theme Resources Creation (e9f1025)
- Writing Classes (2fcb0c5)