12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace Elgg\Filesystem;
- /**
- * Represents a file that may or may not actually exist.
- *
- * @since 1.10.0
- *
- * @access private
- */
- class File {
-
- /** @var Directory */
- private $directory;
-
- /** @var string */
- private $path;
-
- /**
- * Constructor
- *
- * @param Directory $directory The directory where this file resides
- * @param string $path The path to this file relative to the directory
- */
- public function __construct(Directory $directory, $path) {
- $this->directory = $directory;
- $this->path = $path;
- }
-
- /**
- * @return boolean Whether this file exists.
- */
- public function exists() {
- return $this->directory->isFile($this->path);
- }
-
- /**
- * @return string The file's basename.
- */
- public function getBasename() {
- return pathinfo($this->path, PATHINFO_BASENAME);
- }
-
- /**
- * Get the text content of this file. Empty string if it doesn't exist.
- *
- * @return string
- */
- public function getContents() {
- return $this->directory->getContents($this->path);
- }
-
- /**
- * @return string The file's extension.
- */
- public function getExtension() {
- return pathinfo($this->path, PATHINFO_EXTENSION);
- }
-
- /**
- * Do a PHP include of the file and return the result.
- *
- * TODO(ewinslow): This may only work for local filesystems?
- *
- * @return mixed
- */
- public function includeFile() {
- return $this->directory->includeFile($this->path);
- }
-
- /** @inheritDoc */
- public function __toString() {
- return $this->path;
- }
- }
|