query('SELECT ...'); * Database::instance('reporting')->query(...); // отдельное подключение */ class Database { /** @var array Кэш подключений по имени */ protected static array $_instances = []; /** * Возвращает подключение по имени (кэшируется). * * @param string|null $name Имя подключения из конфига; null — 'default' * @return PdoConnection * @throws MyException Если подключение не описано в конфиге */ public static function instance(?string $name = null): PdoConnection { $name ??= 'default'; if (!isset(self::$_instances[$name])) { $config = Config::get('db', $name); if ($config === null) { throw new MyException('Подключение к БД не описано в конфиге: :name', [':name' => $name]); } self::$_instances[$name] = new PdoConnection($config); } return self::$_instances[$name]; } }