コード例 #1
0
 /**
  *
  */
 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);
     }
 }
コード例 #2
0
ファイル: pdo.php プロジェクト: jiangyu7408/notification
            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);