0

Final Class Yiisoft\Db\Migration\DatabaseRegistry

InheritanceYiisoft\Db\Migration\DatabaseRegistry

Additional named databases, in execution order. The "default" database is always configured by the existing command dependencies, so it can't be defined here.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Db\Migration\DatabaseRegistry
getNames() Returns names of additional databases, excluding "default". Yiisoft\Db\Migration\DatabaseRegistry

Constants

Hide inherited constants

Constant Value Description Defined By
DEFAULT_DATABASE 'default' Reserved name of the default database configured by the existing command dependencies. Yiisoft\Db\Migration\DatabaseRegistry

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Yiisoft\Injector\Injector $injector, Yiisoft\Db\Migration\Informer\MigrationInformerInterface $informer, array $databases = [] )
$injector \Yiisoft\Injector\Injector
$informer Yiisoft\Db\Migration\Informer\MigrationInformerInterface
$databases array

Additional named databases, excluding "default".

                public function __construct(
    private readonly Injector $injector,
    private readonly MigrationInformerInterface $informer,
    array $databases = [],
) {
    $configs = [];
    foreach ($databases as $name => $config) {
        if (is_int($name)) {
            throw new InvalidArgumentException(
                sprintf('Database names must be non-numeric strings, "%s" given.', $name),
            );
        }
        if (trim($name) === '') {
            throw new InvalidArgumentException('Database names must be non-empty strings.');
        }
        if ($name === self::DEFAULT_DATABASE) {
            throw new InvalidArgumentException(
                sprintf(
                    'The "%s" database is configured by the existing migration settings and can\'t be redefined.',
                    self::DEFAULT_DATABASE,
                ),
            );
        }
        if (!$config instanceof DatabaseConfig) {
            throw new InvalidArgumentException(
                sprintf(
                    'Configuration of the "%s" database must be an instance of "%s", "%s" given.',
                    $name,
                    DatabaseConfig::class,
                    get_debug_type($config),
                ),
            );
        }
        $configs[$name] = $config;
    }
    $this->configs = $configs;
}

            
getNames() public method

Returns names of additional databases, excluding "default".

public string[] getNames ( )

                public function getNames(): array
{
    return array_keys($this->configs);
}