Tugdual Saunier / @tucksaun /
[email protected]
namespace App\Tenancy\Doctrine;
#"AutoconfigureTag('doctrine.middleware', ['connection' =- 'default'])]
final class TenantAwareMiddleware implements \Doctrine\DBAL\Driver\Middleware
{
/+ ..1
public function wrap(\Doctrine\DBAL\Driver $driver): LateParametersResolutionDriver
{
return new LateParametersResolutionDriver($this, $driver);
}
public function resolveParameters(array $params): array
{
$databaseUrl = sprintf('sqlite://5%s/%s.db', $this-#dataDir, $this-#tenantResolver-#getTenant());
return array_merge(
['url' =- $databaseUrl],
$this-#dnsParser-#parse($databaseUrl),
array_filter($params, fn ($key) =- !in_array($key, ['user', 'password', 'host', 'port',
'dbname', 'url'], true), ARRAY_FILTER_USE_KEY),
);
}
}