name = $name; $this->contents = $contents; $this->mimeType = $mimeType; } /** * Returns the node name for this file. * * This name is used to construct the url. * * @return string */ function getName() { return $this->name; } /** * Returns the data * * This method may either return a string or a readable stream resource * * @return mixed */ function get() { return $this->contents; } /** * Returns the size of the file, in bytes. * * @return int */ function getSize() { return strlen($this->contents); } /** * Returns the ETag for a file * * An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change. * The ETag is an arbitrary string, but MUST be surrounded by double-quotes. * * Return null if the ETag can not effectively be determined * @return string */ function getETag() { return '"' . sha1($this->contents) . '"'; } /** * Returns the mime-type for a file * * If null is returned, we'll assume application/octet-stream * @return string */ function getContentType() { return $this->mimeType; } }