Esempio n. 1
0
File: C.php Progetto: hfw/h
 /**
  * Sends headers and content. This method expects an **exit** upon returning.
  * @param object $subject Given to {@link $content}
  */
 public function __invoke($subject)
 {
     // O::file() isn't used because there is a race between it and the Expires header.
     static::lock(LOCK_SH);
     $this->prepare($subject);
     $file = fopen($this->path, 'rb');
     flock($file, LOCK_SH);
     clearstatcache(true, $this->path);
     O::mtime(filemtime($this->path));
     O::$headers['Content-Length'] = filesize($this->path);
     O::$headers['Cache-Control'] = $this->control . ', max-age=' . $this->ttl;
     O::$headers['Expires'] = gmdate('D, d M Y H:i:s T', filemtime($this->path) + $this->ttl);
     O::headers();
     fpassthru($file);
 }