1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 06:44:02 +00:00

event system

This commit is contained in:
Samuel Štancl 2019-08-17 14:19:31 +02:00
parent 2cc55aaa42
commit 8da31fa7b6
2 changed files with 37 additions and 0 deletions

View file

@ -27,6 +27,7 @@ return [
'Custom Database Names' => 'docs/custom-database-names', 'Custom Database Names' => 'docs/custom-database-names',
'Tenancy Initialization' => 'docs/tenancy-initialization', 'Tenancy Initialization' => 'docs/tenancy-initialization',
'Filesystem Tenancy' => 'docs/filesystem-tenancy', 'Filesystem Tenancy' => 'docs/filesystem-tenancy',
'Event System' => 'docs/event-system',
'Writing Storage Drivers' => 'docs/writing-storage-drivers', 'Writing Storage Drivers' => 'docs/writing-storage-drivers',
'Development' => 'docs/development', 'Development' => 'docs/development',
], ],

View file

@ -0,0 +1,36 @@
---
title: The Event System
description: The Event System | stancl/tenancy — A Laravel multi-database tenancy package that respects your code..
extends: _layouts.documentation
section: content
---
# The Event System
You can use event hooks to change the behavior of the tenancy boostrapping and tenancy ending processes.
The following events are available:
- `boostrapping`
- `boostrapped`
- `ending`
- `ended`
You can hook into these events using `Tenancy::<eventName>`:
```php
Tenancy::boostrapping(function ($tenantManager) {
if ($tenantManager->tenant['uuid'] === 'someUUID') {
config(['database.connections.someDatabaseConnection' => $tenantManager->tenant['databaseConnection']]);
$tenantManager->database->useConnection('someDatabaseConnection');
return ['database'];
}
});
```
The example above checks whether the current tenant has an uuid of `someUUID`. If yes, it creates a new database connection based on data stored in the tenant's storage. Then it changes the default database connection. Finally, it returns an array of the events that this callback prevents.
The following actions can be prevented:
- database connection switch: `database`
- Redis prefix: `redis`
- CacheManager switch: `cache`
- Filesystem changes: `filesystem`