Predis\Cluster\Distributor\HashRing::initialize PHP Метод

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

Initializes the distributor.
private initialize ( )
    private function initialize()
    {
        if ($this->isInitialized()) {
            return;
        }
        if (!$this->nodes) {
            throw new EmptyRingException('Cannot initialize an empty hashring.');
        }
        $this->ring = array();
        $totalWeight = $this->computeTotalWeight();
        $nodesCount = count($this->nodes);
        foreach ($this->nodes as $node) {
            $weightRatio = $node['weight'] / $totalWeight;
            $this->addNodeToRing($this->ring, $node, $nodesCount, $this->replicas, $weightRatio);
        }
        ksort($this->ring, SORT_NUMERIC);
        $this->ringKeys = array_keys($this->ring);
        $this->ringKeysCount = count($this->ringKeys);
    }