All notable changes to omnievent will be documented in this file.
This release is compatible with Laravel 11, 12 & 13
- Laravel 13 support
- Composer test scripts:
composer test:l11,composer test:l12,composer test:l13,composer test:all
- L13 boot compatibility -
Eventable::bootEventable()refactored to use class string instead ofnew staticto avoid L13'sLogicExceptionon model instantiation during boot
- Dropped Laravel 10 support (EOL)
- PHP minimum bumped from 8.2 to 8.3
pdphilip/elasticsearchbumped to^5.6pdphilip/omnitermbumped to^3.0pdphilip/cf-requestbumped to^3.1- CI matrix updated: PHP 8.3/8.4, Laravel 11/12/13
- PHPStan config: removed
configpath (larastan 3 false positive), regenerated baseline
Full Changelog: https://github.com/pdphilip/omnievent/compare/v3.1.0...v3.2.0
triggerEvent()andeventSearch()now accept\BackedEnumvalues in addition to strings. Both string-backed and int-backed enums are supported — the value is extracted and cast to string automatically.
- Added
EventableEnumTestcovering enum and string inputs fortriggerEvent()andeventSearch().
- Removed chainable query methods from the
Eventabletrait:eventFrom(),eventTo(),whereType(),modelOnly(),getEvents(),distinctEvents(),paginateDistinctEvents(),countEvents(),paginateEvents(). UseviaEvents()with standard Eloquent builder methods instead. viaEvents()now returns an Elasticsearch EloquentBuilderdirectly (was returning the model instance for chaining).- Removed
validateEventModel(),validateConnection(),validateAndContinue()from theEventabletrait. Schema validation now happens once on boot. - Removed
transformModelRelationship()fromEventModel. - Removed
Timertrait (src/Traits/Timer.phpdeleted). - Removed
getDetails()fromEventModelException. - Config: Removed
queuekey (was unused).
eventSearch(string $event)- shorthand returning aCollectionof matching events.asModel()onEventModel- resolves the base model directly.- Request capture via DI container (
app(CfRequest::class)) - graceful in non-HTTP contexts (queues, CLI). - Full test suite: unit, integration, and feature tests.
Eventabletrait rewritten: 4 public methods (triggerEvent,viaEvents,eventSearch,bootEventable) replacing 15+.EventModel::guessBaseModelName()usesconfig('omnievent.namespaces.models')instead of hardcodedApp\Models.EventModel::validateSchema()usesSchema::connection()for explicit connection context andhasTable()for index existence checks.EventModel::deleteAllEvents()uses->get()->each->delete()for ES compatibility.EventModelconnection set fromconfig('omnievent.database')in constructor.EventModelExceptionconstructor simplified;$previousparameter now optional.OmniEventMakeCommanduses config-based namespaces for both model and event model resolution.- Event stub uses template variables for namespace and model import.
- CI workflow: added Elasticsearch service container, Laravel 12 / PHP 8.4 support, dropped Windows matrix.
- Requires
pdphilip/omniterm: ^2,pdphilip/cf-request: ^3.
- OmniTerm v2 compatibility.
- Laravel 11 support.
- Initial release.