We're excited to announce the release of Flarum 2.0.0-beta.6! This release brings significant infrastructure upgrades alongside important bug fixes and improvements.
🚀 Major Upgrades
Laravel 12, PHPStan 2.0, and Larastan 3.0
The headline feature of this release is the upgrade to Laravel 12, along with updated static analysis tooling including PHPStan 2.0 and Larastan 3.0. These upgrades bring improved performance, better type checking, and support for PHP 8.4 & 8.5 features.
What This Means for Extension Developers
Laravel 12 is a maintenance release that focuses on dependency upgrades. Most applications can upgrade without code changes, though there are a few breaking changes to be aware of:
- Laravel 12 supports PHP 8.2–8.5
- Bug fixes until August 13, 2026
- Security fixes until February 24, 2027
📚 Resources:
PHPStan 2.0 introduces significant improvements including:
- Level 10 - stricter analysis that treats all mixed types strictly
- 50-70% lower memory consumption on large projects
- Enhanced array list type checking
- Better performance overall
📚 Resources:
Larastan 3.0 now requires PHP 8.2+ and Laravel 11.15+, bringing improved Laravel-specific static analysis rules and better integration with PHPStan 2.0.
📚 Resources:
Other Infrastructure Updates
- wikimedia/less.php upgraded from 4.x to 5.x (#4225)
- Queue and logging improvements for Laravel 12 compatibility (#4342)
- Support for both
LaravelServiceProvider and AbstractServiceProvider (#4349)
✨ New Features
- Abandoned package highlighting and PHP info exposure in the admin dashboard (#4323)
- Request error handler for extension toggles to improve error reporting (#4333)
🐛 Bug Fixes
Realtime Extension
- Fixed likes sync after 20 replies (#4319)
- Fixed tag-specified discussion pushing (#4320)
Likes Extension
- Fixed likes not loaded on firstPost via XHR (#4327)
Suspend Extension
- Fixed suspend without reason/message (#4345)
Core Fixes
- Fixed security page moderation access (#4325)
- Fixed firstPost callback console error (#4326)
- Fixed registry warnings for lazy-loaded chunks (#4331)
- Fixed minified JS identification (#4329)
- Fixed custom use translation value (#4347)
- Fixed larastan-extension path for packages (#4348)
🙏 Thanks
A huge thank you to all our contributors who made this release possible, especially @IanM for the Laravel 12 upgrade work, @Krinkle for the LESS.php update, @edgeinfinity1 for realtime fixes, and @datitisev for extension toggle improvements.
🔗 Links
Sources: