| @@ -52,10 +52,10 @@ | ||
| 52 | 52 | private $fallbackDirsPsr0 = array(); |
| 53 | 53 | |
| 54 | 54 | private $useIncludePath = false; |
| 55 | 55 | private $classMap = array(); |
| 56 | - | |
| 57 | 56 | private $classMapAuthoritative = false; |
| 57 | + private $missingClasses = array(); | |
| 58 | 58 | |
| 59 | 59 | public function getPrefixes() |
| 60 | 60 | { |
| 61 | 61 | if (!empty($this->prefixesPsr0)) { |
| @@ -321,9 +321,9 @@ | ||
| 321 | 321 | // class map lookup |
| 322 | 322 | if (isset($this->classMap[$class])) { |
| 323 | 323 | return $this->classMap[$class]; |
| 324 | 324 | } |
| 325 | - if ($this->classMapAuthoritative) { | |
| 325 | + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { | |
| 326 | 326 | return false; |
| 327 | 327 | } |
| 328 | 328 | |
| 329 | 329 | $file = $this->findFileWithExtension($class, '.php'); |
| @@ -328,15 +328,15 @@ | ||
| 328 | 328 | |
| 329 | 329 | $file = $this->findFileWithExtension($class, '.php'); |
| 330 | 330 | |
| 331 | 331 | // Search for Hack files if we are running on HHVM |
| 332 | - if ($file === null && defined('HHVM_VERSION')) { | |
| 332 | + if (false === $file && defined('HHVM_VERSION')) { | |
| 333 | 333 | $file = $this->findFileWithExtension($class, '.hh'); |
| 334 | 334 | } |
| 335 | 335 | |
| 336 | - if ($file === null) { | |
| 336 | + if (false === $file) { | |
| 337 | 337 | // Remember that this class does not exist. |
| 338 | - return $this->classMap[$class] = false; | |
| 338 | + $this->missingClasses[$class] = true; | |
| 339 | 339 | } |
| 340 | 340 | |
| 341 | 341 | return $file; |
| 342 | 342 | } |
| @@ -398,8 +398,10 @@ | ||
| 398 | 398 | // PSR-0 include paths. |
| 399 | 399 | if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { |
| 400 | 400 | return $file; |
| 401 | 401 | } |
| 402 | + | |
| 403 | + return false; | |
| 402 | 404 | } |
| 403 | 405 | } |
| 404 | 406 | |
| 405 | 407 | /** |