WPCOM_VIP_Cache_Manager::build_purge_request PHP Method

build_purge_request() public method

Instead of using this method directly, please use the API functions provided; see api.php.
public build_purge_request ( string $url, string $method ) : array
$url string A URL to PURGE
$method string
return array
    public function build_purge_request($url, $method)
    {
        if (!defined('PURGE_SERVER_TYPE') || 'varnish' == PURGE_SERVER_TYPE) {
            global $varnish_servers;
        } else {
            $varnish_servers = array(constant('PURGE_SERVER_URL'));
        }
        $requests = array();
        if (empty($varnish_servers)) {
            return $requests;
        }
        $parsed = parse_url($url);
        if (empty($parsed['host'])) {
            return $requests;
        }
        foreach ($varnish_servers as $server) {
            if ('BAN' == $method) {
                $uri = $parsed['path'] . '?' . $parsed['query'];
            } else {
                $uri = '/';
                if (isset($parsed['path'])) {
                    $uri = $parsed['path'];
                }
                if (isset($parsed['query'])) {
                    $uri .= $parsed['query'];
                }
            }
            $request = array('host' => $parsed['host'], 'uri' => $uri, 'method' => $method);
            if (!defined('PURGE_SERVER_TYPE') || 'varnish' == PURGE_SERVER_TYPE) {
                $srv = explode(':', $server[0]);
                $request['ip'] = $srv[0];
                $request['port'] = $srv[1];
            }
            $requests[] = $request;
        }
        return $requests;
    }