Move realpath call into constructor

Add an is_dir check, because realpath fails with things like stream wrappers
This commit is contained in:
Justin Hileman
2013-08-04 12:16:18 -07:00
parent 35ad7f961e
commit a8bd6a6cf6
+9 -3
View File
@@ -25,9 +25,15 @@ class Mustache_Autoloader
public function __construct($baseDir = null) public function __construct($baseDir = null)
{ {
if ($baseDir === null) { if ($baseDir === null) {
$this->baseDir = dirname(__FILE__).'/..'; $baseDir = dirname(__FILE__).'/..';
}
// realpath doesn't always work, for example, with stream URIs
$realDir = realpath($baseDir);
if (is_dir($realDir)) {
$this->baseDir = $realDir;
} else { } else {
$this->baseDir = rtrim($baseDir, '/'); $this->baseDir = $baseDir;
} }
} }
@@ -61,7 +67,7 @@ class Mustache_Autoloader
return; return;
} }
$file = sprintf('%s/%s.php', realpath($this->baseDir), str_replace('_', '/', $class)); $file = sprintf('%s/%s.php', $this->baseDir, str_replace('_', '/', $class));
if (is_file($file)) { if (is_file($file)) {
require $file; require $file;
} }