Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
50.00% |
1 / 2 |
|
25.00% |
1 / 4 |
CRAP | |
52.63% |
10 / 19 |
| Path | |
0.00% |
0 / 1 |
|
25.00% |
1 / 4 |
17.61 | |
52.63% |
10 / 19 |
| __construct($pathString, $createNonexisting = false) | |
0.00% |
0 / 1 |
3.71 | |
57.14% |
4 / 7 |
|||
| __toString() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| resolve($path) | |
0.00% |
0 / 1 |
5.40 | |
55.56% |
5 / 9 |
|||
| _create($pathString) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| FileDoesNotExistException | |
100.00% |
1 / 1 |
0 | ||||||
| <?php | |
| /** | |
| * Path is a utility to simplify working with directories. | |
| */ | |
| namespace aae\fs { | |
| /** | |
| * @author Axel Ancona Esselmann | |
| * @package aae\cdt | |
| */ | |
| class Path { | |
| protected $_pathString = null; | |
| public function __construct($pathString, $createNonexisting = false) { | |
| $pathString = $this->resolve($pathString); | |
| if (!file_exists($pathString)) { | |
| if ($createNonexisting) $this->_create($pathString); | |
| else throw new FileDoesNotExistException("Error: '$pathString' is not a valid path.", 213141057); | |
| } | |
| $this->_pathString = $pathString; | |
| } | |
| public function __toString() { | |
| return strval($this->_pathString); | |
| } | |
| public static function resolve($path) { | |
| if (substr($path, 0, 1) != "/") { | |
| $docRoot = $_SERVER["DOCUMENT_ROOT"]; | |
| if (substr($docRoot, -1) != "/") $docRoot .= "/"; | |
| $path = $docRoot."../".$path; | |
| } | |
| $regex = "/(.?)(\/[^\/]*\/\.\.)(.*)/"; | |
| $result = preg_replace($regex, "$1$3", $path); | |
| if ($result != $path) $result = self::resolve($result); | |
| return $result; | |
| } | |
| protected function _create($pathString) { | |
| mkdir($pathString, 0777, true); | |
| } | |
| } | |
| class FileDoesNotExistException extends \Exception {} | |
| } |