Nexcessnet_Turpentine_Model_Varnish_Configurator_Abstract::_vcl_director PHP Method

_vcl_director() protected method

Format a VCL director declaration, for load balancing
protected _vcl_director ( string $name, array $backendOptions ) : string
$name string name of the director, also used to select config settings
$backendOptions array options for each backend
return string
    protected function _vcl_director($name, $backendOptions)
    {
        $tpl = <<<EOS
director {{name}} round-robin {
{{backends}}
}
EOS;
        if ('admin' == $name && 'yes_admin' == Mage::getStoreConfig('turpentine_vcl/backend/load_balancing')) {
            $backendNodes = Mage::helper('turpentine/data')->cleanExplode(PHP_EOL, Mage::getStoreConfig('turpentine_vcl/backend/backend_nodes_admin'));
            $probeUrl = Mage::getStoreConfig('turpentine_vcl/backend/backend_probe_url_admin');
        } else {
            $backendNodes = Mage::helper('turpentine/data')->cleanExplode(PHP_EOL, Mage::getStoreConfig('turpentine_vcl/backend/backend_nodes'));
            $probeUrl = Mage::getStoreConfig('turpentine_vcl/backend/backend_probe_url');
        }
        $backends = '';
        foreach ($backendNodes as $backendNode) {
            $parts = explode(':', $backendNode, 2);
            $host = empty($parts[0]) ? '127.0.0.1' : $parts[0];
            $port = empty($parts[1]) ? '80' : $parts[1];
            $backends .= $this->_vcl_director_backend($host, $port, $probeUrl, $backendOptions);
        }
        $vars = array('name' => $name, 'backends' => $backends);
        return $this->_formatTemplate($tpl, $vars);
    }