Quantum PHP Framework (core) v3.0.0 Release Notes
Release Date: 2026-05-28 // 24 days ago-
What's Changed
- ⬆️ Pull Request: Upgrade to PHP 7.4+ with PHP 8.0/8.1 support by @Wiltzsu in #389
- 🔋 Feature/php 8.1 compatability related fixes by @armanist in #390
- 371 integrate php stan for static analysis in quantum framework by @armanist in #391
- 155 integrate php cs fixer by @armanist in #392
- 🛠 Fix: Resolve DBAL contract violation with truncate() method (#387) by @Wiltzsu in #393
- ✨ Enhance CONTRIBUTING.md with new setup steps by @armanist in #394
- 396 qt command crashes on symfony 5+ when $help or $description is not defined by @armanist in #397
- 🛠 Fix/php81 nullable deprecations by @Wiltzsu in #398
- ✅ 400 make http client testable by allowing curl and multi curl injection and removing external api dependency from tests by @armanist in #401
- 🛠 Fix Translator to merge shared and module translations by @armanist in #403
- Backend validation errors are not displayed in Toolkit forms by @Tigranuhi-A in #405
- 🛠 Fix issue where pagination state is lost after viewing a single post by @live-soft in #395
- 👌 Improve serve Command Reliability by @armanist in #406
- 🔨 Refactor Router and ModuleLoader: Decouple module loading from route building by @armanist in #409
- 🔋 Feature/native cron runner 291 by @charoyan88 in #408
- 🔨 Refactor model architecture introduce base model and database model separation by @armanist in #410
- ➕ Add Optional Timestamps Support to Models by @armanist in #411
- ➕ Add
Di::set()instance binding support to DI container by @armanist in #414 - 🔨 Refactor routing core, introduce route collection and route finder to reduce router responsibilities by @armanist in #415
- 🐛 Bug: "Array" rendered inside pagination HTML by @armanist in #417
- 🔨 419 refactor flatten libraries directory into top level src folder by @armanist in #420
- ➕ Adding types to class properties, updating method signatures, and organizing use statements across multiple classes and packages. by @armanist in #422
- ➕ Adding
declare(strict_types=1)to all classes via rector by @armanist in #424 - 🚚 Making sure to remove 'id' from user data by @armanist in #425
- 0️⃣ Converting request defaults to strings by @armanist in #426
- ➕ Adding new resetContainer method to Di class and updating tests by @armanist in #427
- Update ob_implicit_flush for PHP 8+ and ensure string type for search… by @armanist in #428
- Cast search parameter to string before trimming in PostController templates by @armanist in #429
- Changing the getPagination method first value to be boolean to follow… by @armanist in #430
- 📦 Enforce PHPStan level 6 compliance across all packages by @armanist in #432
- ✂ Remove shared StorageInterface in favor of package-level contracts by @armanist in #434
- ⬇️ Reduce bcrypt cost in Auth and Hasher tests for faster test execution by @armanist in #436
- 437 extract adapter type constants from main classes into dedicated enum classes by @armanist in #438
- ➕ Add Resend mailer adapter by @grigoryanmartin20 in #440
- ⬆️ 441 upgrade php stan analysis from level 6 to level 7 by @armanist in #442
- 🔨 Refactor Module Templates to use DTOs in Services and Controllers by @armanist in #444
- ➕ Adding rector commands in composer.json and fixing issues found by rector by @armanist in #445
- ➕ Added missing @method annotations to App and DbModel by @armanist in #446
- Remember-me cookie in SessionAuthAdapter missing httpOnly and secure flags by @armanist in #450
- Inject auth config into adapters via AuthFactory by @armanist in #451
- 🔨 Refactor App Bootstrapping & DI Ownership Model by @armanist in #457
- 🔨 [#458] Refactor debugbar() helper for structural and behavioral consi… by @armanist in #463
- 🔨 [#459] Refactor
view()helper to service locator and renameQtViewtoViewby @armanist in #464 - [#460] Introduce db() helper to encapsulate Database DI lookup by @armanist in #465
- [#462] Normalize router helper surface through Request proxies by @armanist in #466
- Issue/467 di registry container split by @armanist in #468
- [#470] Enforce response-returning route dispatch by @armanist in #475
- 🔨 Issue/471 middleware hook refactor by @armanist in #476
- 🔨 [#472] Refactor web flow to explicit response pipeline by @armanist in #477
- 🔨 [#473] Refactor console termination to explicit return flow by @armanist in #478
- Issue/474 stop cleanup by @armanist in #480
- 👻 Issue/481 enum exception coverage by @armanist in #484
- Issue/479 command coverage by @armanist in #485
- ✅ [#483] Increase Tracer ErrorHandler unit-test coverage by @armanist in #486
- 📦 [#482] Expand migration package unit test coverage by @armanist in #487
- ✅ [#488] Raise console command coverage and silence serve test logs by @armanist in #489
- 🔋 Feature/490 errorhandler refactor by @armanist in #491
- [#492] Prevent Request bootstrap circular dependency via UploadedFile lazy init by @armanist in #493
- 🔨 [#494] Refactor UploadedFile into upload collaborators by @armanist in #495
- 🚚 496 remove response param in templates by @armanist in #497
- [#498] Fix missing Response import and redirect return in templates by @armanist in #499
- Issue/500 qt prefix class rename by @armanist in #501
- Issue/502 request context cleanup by @armanist in #503
- Issue/504 load modules boot stage by @armanist in #505
- ⚡️ CHANGELOG.md and CONTRIBUTING.md updates by @armanist in #506
- [#290] Add first-class route rate limiting with global backend by @armanist in #507
- 👍 [#508] Support related criteria paths in SleekDB joins by @armanist in #509
- [#511] Fix RouteBuilder post-group modifier chaining context by @armanist in #512
- Issue/510 rate limit demoapi by @armanist in #513
- [#514] Preserve SleekDB criteria state across paginator count by @armanist in #515
- [#516] Standardize middleware validation rule signatures by @armanist in #517
- [#518] Fix middleware template signature mismatches by @armanist in #519
- [#520] Fix OpenAPI generated routes response contract by @armanist in #521
- Issue/522 demoapi openapi coverage by @armanist in #523
- 🚀 Finalize RC release notes link and rector-typed terminal closure by @armanist in #524
- ⚡️ Chore/update contact email by @armanist in #525
- Issue/526 request multi file fields by @armanist in #527
- 📄 docs: Add Code of Conduct and RE...
Previous changes from v3.0.0-rc
-
🚀 3.0.0-rc.1 is the first release candidate for Quantum 3.0.0.
🚀 This RC is for final validation of breaking changes, response-return contracts, and template/generator consistency before stable release.
⬆️ Upgrade guide:
⬆️ https://github.com/softberg/quantum-php-docs/blob/master/v3.0/upgrade-guide.md🚀 Please report only release-blocking issues for this RC window.