mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-13 01:14:04 +00:00
* TenantDatabaseDoesNotExistException * Apply fixes from StyleCI * User post-creation callbacks * Rename method * postCreationActions * pass $tenant as parameter * pass $tenant to async actions * WIP findBy() * findBy\* ForwardsCalls * Apply fixes from StyleCI * findBy DB storage driver * Redis SD TODO message * Apply fixes from StyleCI * Fix chained jobs * WIP event system * import str * instanceof closure check * findBy instead of find * Tenant -> Tenants * dots * Use DB hooks instead of a SC key * Don't allow callables for queue chain * CanDeleteKeys interface * Apply fixes from StyleCI * CanFindByAnyKey interface * Apply fixes from StyleCI * Ditch models for custom repositories * Resolve circular dependency * Apply fixes from StyleCI * Fix tests * Apply fixes from StyleCI * FutureTest * Prefix tenant events with 'tenant.' * Event listener arguments test
36 lines
896 B
PHP
36 lines
896 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Stancl\Tenancy\TenancyBootstrappers;
|
|
|
|
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
|
use Stancl\Tenancy\DatabaseManager;
|
|
use Stancl\Tenancy\Exceptions\TenantDatabaseDoesNotExistException;
|
|
use Stancl\Tenancy\Tenant;
|
|
|
|
class DatabaseTenancyBootstrapper implements TenancyBootstrapper
|
|
{
|
|
/** @var DatabaseManager */
|
|
protected $database;
|
|
|
|
public function __construct(DatabaseManager $database)
|
|
{
|
|
$this->database = $database;
|
|
}
|
|
|
|
public function start(Tenant $tenant)
|
|
{
|
|
$database = $tenant->getDatabaseName();
|
|
if (! $this->database->getTenantDatabaseManager($tenant)->databaseExists($database)) {
|
|
throw new TenantDatabaseDoesNotExistException($database);
|
|
}
|
|
|
|
$this->database->connect($tenant);
|
|
}
|
|
|
|
public function end()
|
|
{
|
|
$this->database->reconnect();
|
|
}
|
|
}
|