feature/add-tenant-db-lifecycle-events#78
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new set of tenant lifecycle events to the multi-tenancy bundle and integrates them into key command and listener classes. These events provide hooks for external systems to react to important tenant database actions, such as creation, migration, bootstrapping, deletion, and switching. The changes enhance the extensibility and observability of tenant operations by dispatching events at appropriate stages.
New Tenant Lifecycle Events
AbstractTenantEvent(base class),TenantCreatedEvent,TenantBootstrappedEvent,TenantMigratedEvent,TenantDeletedEvent, andTenantSwitchedEvent. These events include metadata and context for each action. [1] [2] [3] [4] [5] [6]Command Integration
CreateDatabaseCommand,MigrateCommand, andLoadTenantFixtureCommandto dispatch the new events (TenantCreatedEvent,TenantMigratedEvent, andTenantBootstrappedEvent) after successfully creating databases, running migrations, or loading fixtures, respectively. This allows external listeners to react to these lifecycle milestones. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Database Switch Event Integration
DbSwitchEventListenerto dispatch aTenantSwitchedEventafter successfully switching the active tenant database connection, including information about the previous tenant for auditing and analytics. [1] [2] [3] [4]Dependency Injection Updates
services.xmlto inject the event dispatcher into relevant command and listener services, enabling event dispatching functionality. [1] [2]Event Usage Preparation
TenantDeletedEventinDbService.phpto prepare for future integration of deletion event dispatching.