Merge pull request #5485 from eileenmcnaughton/4.6
[civicrm-core.git] / CRM / Core / ClassLoader.php
index 4ab4e3223634698ced79475a6681108cbd721403..b68cc3d6b911cb3932c64623ecaec690fe05b8f0 100644 (file)
@@ -23,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  *
@@ -39,7 +39,6 @@ class CRM_Core_ClassLoader {
    * We only need one instance of this object. So we use the singleton
    * pattern and cache the instance in this variable
    * @var object
-   * @static
    */
   private static $_singleton = NULL;
 
@@ -61,7 +60,6 @@ class CRM_Core_ClassLoader {
   protected $_registered;
 
   /**
-   *
    */
   protected function __construct() {
     $this->_registered = FALSE;
@@ -96,13 +94,18 @@ class CRM_Core_ClassLoader {
     $include_paths = array(
       '.',
       $civicrm_base_path,
-      $packages_path
+      $packages_path,
     );
     $include_paths = implode(PATH_SEPARATOR, $include_paths);
     set_include_path($include_paths . PATH_SEPARATOR . get_include_path());
     require_once "$civicrm_base_path/vendor/autoload.php";
   }
 
+  /**
+   * Initialize HTML purifier class.
+   *
+   * @param string $prepend
+   */
   public function initHtmlPurifier($prepend) {
     if (class_exists('HTMLPurifier_Bootstrap')) {
       // HTMLPurifier is already initialized, e.g. by the Drupal module.
@@ -162,9 +165,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;
+      }
     }
   }
+
 }