Skip to content

5.0.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@lcharette lcharette released this 10 Aug 02:11
· 14 commits to master since this release
12f0ff7

This is the first pre-release of UserFrosting 5 !

IMPORTANT: This version is unstable and meant for development purpose only. It's should not be used on your own project. Things are not 100% final and no documentation is provided.

This version is meant as a the first stepping stone of the big V5 released, a way to "freeze frame" the current code and as a first technical release test. It's also meant for UserFrosting developers to get a first glimpse of what's coming up.

While no major changes are planed at this stage, things could still be moving around. No breaking changes might not be documented during the alpha stage. Limited support for UF5 can be found for this alpha on the chat or GitHub Discussions.

Requirements

  • PHP 8.0 or 8.1
  • Node.js 14 or higher
  • Database (MariaDB, MySQL, Postgres, SQLite, or SQL Server)
  • Composer 2

Installation

To install locally, you can use theses commands, as long as you met the requirements above (i.e. PHP and Node installed). When running the bake command, you can select sqlite if you don't have a database engine installed.

composer create-project userfrosting/userfrosting UserFrosting "^5.0.0@dev"
cd UserFrosting/
php bakery bake

Seeds are currently not run automatically. To manually run seeds (to create default groups, roles and permissions), run this command:

php bakery seed

Website can be locally served with the following command and then be accessed at http://localhost:8888.

php -S localhost:8888 -t public

What is UserFrosting 5 ?

UserFrosting 5 is the culmination of more than a year of work by @lcharette. It is a complete rewrite of the backend PHP code. And by complete, we really mean complete. No class was left untouched! The main updates are :

  • Slim 3 upgraded to Slim 4
  • Pimple Container replaced with PHP-DI
  • Frontend assets management replaced with Webpack Encore
  • New Sprinkle system, now with extra modularity
  • Skeleton type main repo for easier
  • Built in sprinkle are now managed by Composer
  • New Event dispatcher and listener services
  • New Bakery command for easier debugging
  • 100% test coverage and quality check through PHPStan
  • And so much more

The Slim migration itself is a big deal. While brining UF to a more modern era, it had the most impact on the core changes applied to the UserFrosting framework. Most changes were made in response to the new Slim 4 requirements and changes. It also required the use of a new Dependency Injector, which itself really brought UF5 to a whole new level. You should really check out PHP-DI, it's awesome!

Basically, UF5 uses updated dependencies, all of existing code have been updated to new standard and new test coverage should provide better long term stability.

What UserFrosting 5 isn't ?

UF5 is not a drop-in replacement for UF4. The whole backend has been rewritten, with a new container, sprinkle system, etc. which will require most sprinkle to be updated manually.

UserFrosting 5 also offers the same frontend as UserFrosting 4. But the bases have been set for the future, with Webpack Encore and the current AdminLTE theme separated in it's own Sprinkle providing the necessary tools for Vue.js or other similar frontend.

Known bugs and missing features

While most features are ready at this point, some things are not:

  • [Core] Default seeds are not run automatically on Bake
  • [Core Sprinkle] CSRF service not reimplemented yet.
  • [Core Sprinkle] Clear cache bakery command is not implemented yet.
  • [Core & Admin Sprinkles] Sprunje pagination might not work properly.
  • [Admin Sprinkle] Enabling/Disabling using the dropdown a user is not enabled (requires CORS).
  • [Admin Sprinkle] Clear cache button doesn't work.
  • [AdminLTE Theme] Alert messages might not be properly displayed, for example when a login error should be shown
  • [Webpack Encore] Sprinkle entries needs to be manually copied in their parent sprinkle (Will require a custom plugin or contribution to Encore)
  • [General] Some test coverage still need to be added

What's next? When will it be stable? How can I help?

There's currently no ETA on the release date of the first stable version. For now, alpha released are planed, when necessary, until all features and code coverage are done. Once this is done, the first beta should be released and work will start on the documentation. Once this is also done, the first stable release should be released.

The best way to help is to contribute to the code and create pull requests. You can also help by testing the current release and signaling bugs by opening a new issue. Just make sure to reference V5!

Alternatively, you can contribute through our Open Collective or buying a coffee round.