CRM_Core_ClassLoader - Fix compatibility with class_exists()
authorTim Otten <totten@civicrm.org>
Wed, 7 Jan 2015 02:56:33 +0000 (18:56 -0800)
committerTim Otten <totten@civicrm.org>
Wed, 7 Jan 2015 02:56:33 +0000 (18:56 -0800)
The previous code would bomb if one called class_exists() on a non-existent
CRM class.

CRM/Core/ClassLoader.php

index 4ab4e3223634698ced79475a6681108cbd721403..a96787f2facc133cbc557bbac22d62e38e9b5775 100644 (file)
@@ -162,9 +162,11 @@ class CRM_Core_ClassLoader {
       $file = strtr($class, '_', '/') . '.php';
       // There is some question about the best way to do this.
       // "require_once" is nice because it's simple and throws
-      // intelligible errors.  The down side is that autoloaders
-      // down the chain cannot try to find the file if we fail.
-      require_once $file;
+      // intelligible errors.
+      if (FALSE != stream_resolve_include_path($file)) {
+        require_once $file;
+      }
     }
   }
+
 }