Repo2\QueryReactor\Sharding\ShardingController::pickShard PHP Метод

pickShard() приватный Метод

private pickShard ( Repo2\QueryReactor\Sharding\ShardedQuery $query ) : Repo2\QueryReactor\Controller
$query Repo2\QueryReactor\Sharding\ShardedQuery
Результат Repo2\QueryReactor\Controller
    private function pickShard(ShardedQuery $query)
    {
        $params = $this->sharding->selectShard($query->getDistributionName(), $query->getDistributionValue());
        if (empty($params['id'])) {
            throw new \RuntimeException('Required not empty key "id" in sharding configuration.');
        }
        $shardId = $params['id'];
        if (empty($this->controllers[$shardId])) {
            $this->controllers[$shardId] = new $this->controllerClass($params);
        }
        return $this->controllers[$shardId];
    }