baseDirectory = $baseDirectory; $this->relativeLocation = $fileLocation; } public function getAbsoluteLocation() { return $this->baseDirectory . '/' . $this->relativeLocation; } public function getRelativeLocation() { return $this->relativeLocation; } public function getBaseDirectory() { return $this->baseDirectory; } public function validateFile() { if (!$this->assetIsReadable()) throw new Exception("The ui asset with 'href' = " . $this->getAbsoluteLocation() . " is not readable"); } public function delete() { if ($this->exists()) { if (!unlink($this->getAbsoluteLocation())) throw new Exception("Unable to delete merged file : " . $this->getAbsoluteLocation() . ". Please delete the file and refresh"); // try to remove compressed version of the merged file. @unlink($this->getAbsoluteLocation() . ".deflate"); @unlink($this->getAbsoluteLocation() . ".gz"); } } /** * @param string $content * @throws \Exception */ public function writeContent($content) { $this->delete(); $newFile = @fopen($this->getAbsoluteLocation(), "w"); if (!$newFile) throw new Exception ("The file : " . $newFile . " can not be opened in write mode."); fwrite($newFile, $content); fclose($newFile); } /** * @return string */ public function getContent() { return file_get_contents($this->getAbsoluteLocation()); } public function exists() { return $this->assetIsReadable(); } /** * @return boolean */ private function assetIsReadable() { return is_readable($this->getAbsoluteLocation()); } public function getModificationDate() { return filemtime($this->getAbsoluteLocation()); } }