rate('EUR'); // float|null */ class CurrencyRate { /** @var array Кэш клиентов по имени подключения */ protected static array $_instances = []; /** * @param string|null $name Имя подключения из конфига; null — 'default' * @return Client * @throws MyException Если подключение не описано в конфиге */ public static function instance(?string $name = null): Client { $name ??= 'default'; if (!isset(self::$_instances[$name])) { $config = Config::get('currency_rate', $name); if ($config === null) { throw new MyException('Подключение currency_rate не описано в конфиге: :name', [':name' => $name]); } self::$_instances[$name] = new Client($config); } return self::$_instances[$name]; } }