info.xml - Allow PSR-0 style class-loader declarations
[civicrm-core.git] / CRM / Extension / ClassLoader.php
index 9ce09a44922e6ca33a3e8699ac549906a687d42e..5b0f30725e6fa868fdc22ea60f98c1ea9b540cce 100644 (file)
  */
 
 /**
- *
- *
- * @package CRM
- * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
+ * Class CRM_Extension_ClassLoader
  */
 class CRM_Extension_ClassLoader {
 
+  /**
+   * List of class-loader features that are valid in this version of Civi.
+   *
+   * This may be useful for some extensions which enable/disable polyfills based on environment.
+   */
+  const FEATURES = ',psr0,psr4,';
+
   /**
    * @var CRM_Extension_Mapper
    */
@@ -97,6 +99,10 @@ class CRM_Extension_ClassLoader {
       if (!empty($info->classloader)) {
         foreach ($info->classloader as $mapping) {
           switch ($mapping['type']) {
+            case 'psr0':
+              $loader->add($mapping['prefix'], CRM_Utils_File::addTrailingSlash($path . '/' . $mapping['path']));
+              break;
+
             case 'psr4':
               $loader->addPsr4($mapping['prefix'], $path . '/' . $mapping['path']);
               break;