/** * Returns a list of objects implementing the changelog-provider-interface * @return interface_changelog_provider[] */ public static function getAdditionalProviders() { if (self::$arrCachedProviders != null) { return self::$arrCachedProviders; } $arrReturn = class_resourceloader::getInstance()->getFolderContent("/system", array(".php"), false, function ($strOneFile) { if (uniStrpos($strOneFile, "class_changelog_provider") === false) { return false; } $objReflection = new ReflectionClass(uniSubstr($strOneFile, 0, -4)); if ($objReflection->implementsInterface("interface_changelog_provider")) { return true; } return false; }, function (&$strOneFile) { $objReflection = new ReflectionClass(uniSubstr($strOneFile, 0, -4)); $strOneFile = $objReflection->newInstance(); }); self::$arrCachedProviders = $arrReturn; return $arrReturn; }