4.4.x to 4.5.x
Overview
UserFrosting 4.5 focuses on cleaning up deprecated code, adding Composer 2 support and other small fix and improvements.
Added Composer 2 Version
The wikimedia/composer-merge-plugin dependency was updated to from ^1.4.0 to ^2.1.0 (#1117). This enabled Composer 2 support. Performance should be through the roof!
Added Lando Support
Lando is a free, open source, cross-platform, local development environment and DevOps tool built on Docker container technology and developed by Tandem. Designed to work with most major languages, frameworks and services, Lando provides an easy way for developers of all skill levels to specify simple or complex requirements for their projects, and then quickly get to work on them. To learn more, check out our new Lando guide.
PHP 7.1 Support Removal
As of UserFrosting 4.5.0, support for PHP version 7.1 has officially been removed. Support for PHP 7.1 was deprecated in 4.4.0 as it had reached End Of Life. PHP version 7.4 or higher is now recommended.
A Note About PHP 8
UserFrosting does not currently support PHP 8 as many dependencies still need to be updated. Don't hesitate to contribute to the project by submitting a Pull Request on GitHub if you want to contribute to this.
Minimum node version
As of UserFrosting 4.5.0, the NodeJS minimum requirement is changed from >=10.12.0 to ^12.17.0 || >=14.0.0. NPM minimum requirement is also changed from >=6.0.0 to >=6.14.4 (#1138).
Removal of Deprecated Code
The following deprecated class and methods have been removed. This could turn out to be a breaking change for your project if you were still using deprecated methods.
- Removed deprecated
UserFrosting\System\Bakery\Migration(deprecated in 4.2.0). - Removed deprecated
UserFrosting\Tests\DatabaseTransactions(deprecated in 4.2.0). - Removed deprecated
UserFrosting\Sprinkle\Core\Tests\ControllerTestCase(deprecated in 4.2.2). - Removed deprecated
UserFrosting\Sprinkle\Core\Model\UFModel(deprecated in 4.1). - Removed deprecated
UserFrosting\Sprinkle\Core\Sprunje\Sprunje::getResults(deprecated in 4.1.7). - Removed deprecated
UserFrosting\Sprinkle\Account\Database\Models\User::exists(deprecated in 4.1.7). - Removed deprecated
UserFrosting\Sprinkle\Core\Database\Models\Model::export(deprecated in 4.1.8). - Removed deprecated
UserFrosting\Sprinkle\Core\Database\Models\Model::queryBuilder(deprecated in 4.1.8). - Removed deprecated
UserFrosting\Sprinkle\Core\Database\Relations\Concerns\Unique::withLimit(deprecated in 4.1.7). - Removed deprecated
UserFrosting\Sprinkle\Core\Database\Relations\Concerns\Unique::withOffset(deprecated in 4.1.7). - Removed deprecated
UserFrosting\Sprinkle\Core\Error\RendererWhoopsRenderer::getResourcesPath. - Removed deprecated
UserFrosting\Sprinkle\Core\Error\RendererWhoopsRenderer::setResourcesPath. - Removed deprecated Handlebar
ifCond(Deprecated in 4.1). - Removed migration seed.
- Removed support for migration with non static
$dependenciesproperties. - Removed support for deprecared
determineRedirectOnLoginservice (deprecated in 4.1.10).
Other Misc Changes & Fixes
- Implement findInt (#1117).
- Replace
getenv()withenv()(#1121). - Added more SMTP options in env and
setup:smtpbakery command (#1077, that is now renamed assetup:mail(old name still available as an alias). - Replaced
UserFrosting\Sprinkle\Core\Bakery\Helper\NodeVersionCheckwith newUserFrosting\Sprinkle\Core\Util\VersionValidatorclass. - Changed
.php_csto.php_cs.dist. - Changed
phpunit.xmltophpunit.xml.dist. - Replaced AdminLTE credit in default footer (old link was dead).
Complete change Log
See the Changelog for the complete list of changes included in this release.
Upgrading to 4.5.x
Upgrading UserFrosting to 4.5.x is as simple as getting the new files and updating dependencies, migrations and assets! If you first installed UserFrosting using git, a simple git pull or git pull upstream master. Once you have the new files, simply use composer and Bakery to get up to date with everything else:
$ composer update
$ php bakery bake
Migrating your Sprinkles
Upgrating your sprinkle for UserFrosting 4.5.0 should be as simple as making sure you don't use any of the deprecated code that was removed. This souldn't be an issue if you already upgraded your code when the class/methods where initially deprecated. Otherwise, you can go through the previous version release notes, or search for the list above and upgrade the code.