From a8bd6a6cf6dd7ddcbcf99ce4c8189a45b4bcd7b1 Mon Sep 17 00:00:00 2001 From: Justin Hileman Date: Sun, 4 Aug 2013 12:10:36 -0700 Subject: [PATCH] Move realpath call into constructor Add an is_dir check, because realpath fails with things like stream wrappers --- src/Mustache/Autoloader.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Mustache/Autoloader.php b/src/Mustache/Autoloader.php index 4c8a90e..2a209dd 100644 --- a/src/Mustache/Autoloader.php +++ b/src/Mustache/Autoloader.php @@ -25,9 +25,15 @@ class Mustache_Autoloader public function __construct($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 { - $this->baseDir = rtrim($baseDir, '/'); + $this->baseDir = $baseDir; } } @@ -61,7 +67,7 @@ class Mustache_Autoloader 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)) { require $file; }