5.0.0
With version 5, this repo can be used as a bare bone Slim & Symfony Console application. It include the necessary routing class, PHP-DI as the Dependency Injection Container, a PSR EventDispatcher, etc. SprinkleManager has also been moved from Core/System Sprinkle and completely rewritten.
It's necessary for the SprinkleManager, Slim and Symfony (Bakery) to be outside of the Core Sprinkle so it can be properly managed. All extra feature (template, database, config, etc.) are left for the Core Sprinkle. The old sprinkle.json has been replace with SprinkleRecipe interface.
Version 5 also requires PHP 8.0 and up. With that in mind, most of the code has been updated to support PHP 8 and make use of it's new features. Code quality has also been stepped up, with PHPStan analysis added to the build process.
Global
Added
- Moved Alert into Framework from Core Sprinkle
- Added Bakery / Symfony Console app :
UserFrosting\Bakery\Bakery - UserFrosting / Slim 4 Web app :
UserFrosting\UserFrosting - Moved
SprinkleManagerfrom main repo. - Added custom Event Dispatcher and Listeners :
UserFrosting\Event\EventDispatcher&UserFrosting\Event\SprinkleListenerProvider
Dependencies
- Drop PHP 7.3 & 7.4 support
- Updated
twig/twigto^3.3
Code Quality
- Updated PHPStan config and added Github Action for automatic code analysis for UniformResourceLocator & Config (with no issues on max level)
- Updated PHP-CS-Fixer & StyleCI config
Assets
Assets module is now deprecated and will be removed in UserFrosting 5.1 !
Removed
UserFrosting\Assets\ServeAsset\SlimServeAssethas been removed. Code has been moved into Core Sprinkle
Bakery
Added
UserFrosting\Bakery\WithSymfonyStylemoved to this repo from Core.
Testing
- Added helper class to test Bakery command, Container, CustomAssertionsTrait, HttpTester, TestCase, etc.
Support
Removed
- These HTTP exceptions have been removed and replace with new system in Core Sprinkle :
BadRequestExceptionForbiddenExceptionHttpExceptionNotFoundException
UserFrosting\Support\Util\Util::normalizePathhas been removed. UseUserFrosting\UniformResourceLocator\Normalizer::normalizePathinstead.
UniformResourceLocator
Changes
- Remove dependency on
rockettheme/toolboxby integrating our ownStreamWrapper\StreamandStreamBuilder findResourceandgetResourcenow returnnullif a resource is not found instead offalse
Added
- Added
readonlyoption for streams. Files accessed using a readonly scheme will be protected against destructive action at the streamwrapper level.
Deprecated
findResourceis deprecated. UsegetResourceinsteadfindResourcesis deprecated. UsegetResourcesinsteadregisterStreamandregisterSharedStreamare deprecated. UseaddStreaminsteadregisterLocationis deprecated. UseaddLocationinstead
Removed
- Scheme Prefix has been removed
- Resource :
setLocation,setPath,setLocatorBasePathandsetStreammethods have been removed - ResourceLocation :
setNameandsetPathmethods have been removed - ResourceStream :
setScheme,setPathandsetSharedmethods have been removed - Deprecated
ResourceLocator::addPathmethod removed ResourceLocator::setBasePathmethod removed
Fortress
Fix
- Fix userfrosting/UserFrosting#1216 - Throw error when RequestSchema path doesn't exist
Removed
- Removed deprecated method
getSchemainRequestSchema
Full Changelog: 4.6.1...5.0.0
Upgrade Guide: https://learn.userfrosting.com/upgrading/46-to-50