PHPPM\ProcessSlave::serveStatic PHP Method

serveStatic() protected method

protected serveStatic ( React\Http\Request $request, PHPPM\React\HttpResponse $response ) : boolean
$request React\Http\Request
$response PHPPM\React\HttpResponse
return boolean returns true if successfully served
    protected function serveStatic(\React\Http\Request $request, HttpResponse $response)
    {
        $filePath = $this->getBridge()->getStaticDirectory() . $request->getPath();
        if (substr($filePath, -4) !== '.php' && is_file($filePath)) {
            $mTime = filemtime($filePath);
            if (isset($request->getHeaders()['If-Modified-Since'])) {
                $ifModifiedSince = $request->getHeaders()['If-Modified-Since'];
                if ($ifModifiedSince && strtotime($ifModifiedSince) === $mTime) {
                    // Client's cache IS current, so we just respond '304 Not Modified'.
                    $response->writeHead(304, ['Last-Modified' => gmdate('D, d M Y H:i:s', $mTime) . ' GMT']);
                    $response->end();
                    return true;
                }
            }
            $expires = 3600;
            //1 h
            $response->writeHead(200, ['Content-Type' => $this->mimeContentType($filePath), 'Content-Length' => filesize($filePath), 'Pragma' => 'public', 'Cache-Control' => 'max-age=' . $expires, 'Last-Modified' => gmdate('D, d M Y H:i:s', $mTime) . ' GMT', 'Expires' => gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT']);
            $response->end(file_get_contents($filePath));
            return true;
        }
        return false;
    }