Releases: php-flasher/php-flasher
Releases · php-flasher/php-flasher
v2.5.0
v2.5.0 - 2026-03-07
Added
- feature [Laravel] Improve Laravel Octane support by resetting FallbackSession static storage between requests to prevent notification leakage
- feature [Symfony] Add FrankenPHP/Swoole/RoadRunner support with WorkerListener that implements ResetInterface and is tagged with kernel.reset
- feature [Symfony] Add reset() method to FallbackSession for long-running process support
- feature [Flasher] Add Hotwire/Turbo Drive support with turbo:before-cache event listener to clean up notifications before page caching
- feature [Flasher] Add event dispatching system for all notification adapters and themes with Livewire integration:
- [Toastr] Dispatch events:
flasher:toastr:click,flasher:toastr:close,flasher:toastr:show,flasher:toastr:hidden - [Noty] Dispatch events:
flasher:noty:click,flasher:noty:close,flasher:noty:show,flasher:noty:hover - [Notyf] Dispatch events:
flasher:notyf:click,flasher:notyf:dismiss - [Themes] Dispatch events:
flasher:theme:click(generic) andflasher:theme:{name}:click(specific) - [Laravel] Add LivewireListener classes for all adapters and themes to enable Livewire event handling
- [Toastr] Dispatch events:
- feature [Flasher] Add 16 notification themes: Amazon, Amber, Jade, Crystal, and more
- feature [DX] Add
@methodannotations to FlasherInterface and NotificationFactoryInterface for better IDE autocompletion - feature [DX] Add Type::all() and Type::isValid() helper methods with PHPStan type narrowing
- feature [DX] Add
@throwsannotations to FlasherContainer methods for better exception documentation - feature [DX] Add FlasherContainer::setContainer() method as convenient alias for testing
- feature [DX] Add PHPStan type alias
NotificationTypefor valid notification types
Fixed
- fix [SweetAlert] Fix SweetAlertBuilder::question() bug where options parameter was being ignored
- fix [Flasher] Fix potential runtime error in Envelope::toArray() when no PresentableStampInterface stamps exist
- fix [Flasher] Use more specific \Random\RandomException in IdStamp instead of broad \Exception
- fix [Flasher] Update Livewire navigation cleanup to use correct .fl-wrapper selector instead of unused .fl-no-cache class
- fix [Flasher] Fix FilterCriteria uninitialized property error when constructed with empty array
- fix [Flasher] Fix null comparison issues in PriorityCriteria, HopsCriteria, and DelayCriteria that relied on PHP's implicit null-to-0 coercion
- fix [Flasher] Add type validation for callable factory return values in NotificationFactoryLocator with descriptive error messages
- fix [Flasher] Add error handling for invalid regex patterns in ResponseExtension::isPathExcluded()
- fix [Flasher] Fix ContentSecurityPolicyHandler parsing of CSP headers with trailing semicolons creating empty directive keys
- fix [Flasher] Add reset() method to ContentSecurityPolicyHandler to fix CSP state leak in long-running processes (Octane, FrankenPHP)
- fix [Flasher] Fix FilterEvent::setFilter() type inconsistency - now accepts FilterInterface instead of concrete Filter class
- fix [Flasher] Remove redundant callable check in FlasherContainer::getContainer()
- fix [Flasher] Fix NotificationStorageMethods::resolveResourceName() return type from ?string to string (never returns null)
- fix [Flasher] Fix parameter name inconsistency in NotificationBuilderInterface::options() - changed $merge to $append to match implementation
- fix [Flasher] Add type validation for callable presenter return values in ResponseManager with descriptive error messages
- fix [Flasher] Fix FlasherPlugin::normalizePlugins() losing scripts/styles when both top-level and plugin-level configs are provided - replaced array union operator with array_merge
- fix [Flasher] Simplify FlasherPlugin::normalizeFlashBag() by replacing redundant array union with direct array_merge
- fix [Flasher] Fix array_merge() syntax in InstallCommand by removing unnecessary empty array
- fix [Flasher] Add return type validation in FilterCriteria::apply() with proper exception handling
Changed
- refactor [Flasher] Reduce theme configuration duplication by generating themes programmatically
- refactor [Flasher] Standardize exception message format in PresetNotFoundException to use brackets like other exceptions
- refactor [Flasher] Standardize exception message wording in CriteriaNotRegisteredException to use "not found" instead of "is not found"
- refactor [SweetAlert] Replace @phpstan-ignore-line suppressions with proper @var annotations
v2.3.0
Full Changelog: v2.2.0...v2.3.0
v2.1.4
v2.1.3
v2.1.1
v2.1.0
- feature [Flasher] Update laravel and symfony configuration documentation . See PR #201 by yoeunes
- feature [Flasher] Improve Type Safety and IDE Support with Enhanced PHPDoc Annotations and Stricter PHPStan Validations. See PR #200 by yoeunes
- feature [Symfony] Improve configuration descriptions and add examples. See PR #199 by yoeunes
- feature [Symfony] Add Symfony Profiler integration for PHPFlasher. See PR #198 by yoeunes
Full Changelog: v2.0.4...v2.1.0
v2.0.2
- feature [Flasher] add escapeHtml option for secure HTML escaping in notifications. See PR #196 by yoeunes
- feature [Flasher] add Default configuration options. See PR #183 by AhmedGamal
- feature [Laravel] Refactor middleware to use Symfony's base response class, addressing compatibility issues. See PR #184 by yoeunes
Full Changelog: v2.0.1...v2.0.2
v2.0.1
- bug #176 [Laravel] Correctly disable FlasherMiddleware when
inject_assetsis set to false. See PR #177 - bug #176 [Flasher] Ensure global
timeoutoption applies to all requests. See PR #180 - bug #176 [Laravel] Allow disabling of default flash replacement by setting
flash_bagto false. See PR #181 - bug #176 [Flasher] Ensure
flash_bagoption overrides default values instead of appending. See PR #182
Full Changelog: v2.0.0...v2.0.1
v2.0.0
Full Changelog: v1.15.14...v2.0.0
v1.15.14
Full Changelog: v1.15.13...v1.15.14