/** * */ public function testShardConfigGenerator() { $generator = ShardHelper::shardConfigGenerator('tw'); static::assertInstanceOf(\Generator::class, $generator); foreach ($generator as $option) { static::assertTrue(is_array($option)); static::assertArrayHasKey('shardId', $option); } }
if ($name === 'PDO::ATTR_CONNECTION_STATUS') { $value = call_user_func($connectionStatusParser, $value); } } catch (PDOException $e) { $value = 'not supported'; $errMsg = $e->getMessage(); if (strpos($errMsg, 'not support') === false) { $value .= '' . $errMsg; } } $info[$name] = $value; } return $info; }; $pdoOptionChecker = function (PDO $pdo) use($optionsReader) { $attributes = ['SERVER_INFO', 'CONNECTION_STATUS']; return call_user_func($optionsReader, $pdo, $attributes); }; $option = getopt('', ['gv:']); $gameVersion = isset($option['gv']) ? trim($option['gv']) : 'tw'; $shardConfigList = \Database\ShardHelper::shardConfigGenerator($gameVersion); $infoList = []; foreach ($shardConfigList as $option) { $pdo = \Database\PdoFactory::makePool($gameVersion)->getByOption($option); if ($pdo === false) { dump('error on ' . json_encode($option)); continue; } $infoList[$option['shardId']] = call_user_func($pdoOptionChecker, $pdo); } dump($infoList);