/** * @param $class * @return bool */ public static function autoload($class) { $uclass = ucfirst($class); if (!empty(self::$noAutoLoad[$class])) { return false; } if (!empty(self::$map[$uclass])) { require_once self::$map[$uclass]; return true; } if (empty(self::$moduleMap)) { if (isset($GLOBALS['beanFiles'])) { self::$moduleMap = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; self::$moduleMap = $beanFiles; } } if (!empty(self::$moduleMap[$class]) && file_exists(self::$moduleMap[$class])) { require_once self::$moduleMap[$class]; return true; } $viewPath = self::getFilenameForViewClass($class); if (!empty($viewPath)) { require_once $viewPath; return true; } $reportWidget = self::getFilenameForSugarWidget($class); if (!empty($reportWidget)) { require_once $reportWidget; return true; } return false; }
public static function autoload($class) { $uclass = ucfirst($class); if (!empty(SugarAutoLoader::$noAutoLoad[$class])) { return false; } if (!empty(SugarAutoLoader::$map[$uclass])) { require_once SugarAutoLoader::$map[$uclass]; return true; } if (empty(SugarAutoLoader::$moduleMap)) { if (isset($GLOBALS['beanFiles'])) { SugarAutoLoader::$moduleMap = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; SugarAutoLoader::$moduleMap = $beanFiles; } } if (!empty(SugarAutoLoader::$moduleMap[$class])) { require_once SugarAutoLoader::$moduleMap[$class]; return true; } $viewPath = self::getFilenameForViewClass($class); if (!empty($viewPath)) { require_once $viewPath; return true; } $reportWidget = self::getFilenameForSugarWidget($class); if (!empty($reportWidget)) { require_once $reportWidget; return true; } // Autoload Google libraries $classPath = explode('_', $class); if ($classPath[0] != 'Google') { return false; } // Drop 'Google', and maximum class file path depth in this project is 3. $classPath = array_slice($classPath, 1, 2); $filePath = 'include/google-api-php-client/src/Google/' . implode('/', $classPath) . '.php'; if (file_exists($filePath)) { require_once $filePath; return true; } return false; }
public static function autoload($class) { $uclass = ucfirst($class); if (!empty(SugarAutoLoader::$noAutoLoad[$class])) { return false; } if (!empty(SugarAutoLoader::$map[$uclass])) { require_once SugarAutoLoader::$map[$uclass]; return true; } if (empty(SugarAutoLoader::$moduleMap)) { if (isset($GLOBALS['beanFiles'])) { SugarAutoLoader::$moduleMap = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; SugarAutoLoader::$moduleMap = $beanFiles; } } if (!empty(SugarAutoLoader::$moduleMap[$class])) { require_once SugarAutoLoader::$moduleMap[$class]; return true; } return false; }
/** * Load a class * @param string $class Class name * @return boolean Success? */ public static function autoload($class) { // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 $class = ltrim($class, '\\'); $uclass = ucfirst($class); if (!empty(self::$noAutoLoad[$class])) { return false; } // try known classes if (isset(self::$classMap[$uclass])) { if (self::$classMap[$uclass]) { // No need for a file_exists, if it is in the map we have found it before require_once self::$classMap[$uclass]; return true; } return false; } // try namespaces if (false !== strpos($class, '\\')) { if ($file = self::getFilenameForFQCN($class)) { if (self::load($file)) { self::$classMap[$class] = $file; self::$classMapDirty = true; return true; } } self::$classMap[$class] = false; self::$classMapDirty = true; return false; } if (empty(self::$moduleMap)) { if (isset($GLOBALS['beanFiles'])) { self::$moduleMap = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; self::$moduleMap = $beanFiles; } } // Try known modules if (!empty(self::$moduleMap[$class])) { require_once self::$moduleMap[$class]; return true; } if (strncmp('HTMLPurifier', $class, 12) == 0) { return HTMLPurifier_Bootstrap::autoload($class); } // Split on _, capitalize elements and make a path // foo_bar -> Foo/Bar. $class_file = join('/', array_map('ucfirst', explode('_', $class))); // Try known prefixes foreach (self::$prefixMap as $prefix => $dir) { if (strncasecmp($prefix, $class, strlen($prefix)) === 0) { if ($file = self::requireWithCustom("{$dir}{$class_file}.php")) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } else { break; } } } // Special cases // Special case because lookup goes to $_REQUEST['module'] if ($file = self::getFilenameForViewClass($class)) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } // Special case because widget name can be lowercased if ($file = self::getFilenameForSugarWidget($class)) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } // Special case because it checks by ending in Layout if ($file = self::getFilenameForLayoutClass($class)) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } if ($file = self::getFilenameForExpressionClass($class)) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } // Try known dirs foreach (self::$dirMap as $dir) { // include/Class.php if ($file = self::requireWithCustom("{$dir}{$class_file}.php")) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } // include/Class/Class.php // Note here we don't use $class_file since using path twice would not make sense: // Foo/Bar/Foo/Bar.php vs. Foo_Bar/Foo_Bar.php if ($file = self::requireWithCustom("{$dir}{$class}/{$class}.php")) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } // try include/Foo_Bar.php as a last resort if ($file = self::requireWithCustom("{$dir}{$class}.php")) { self::$classMap[$uclass] = $file; self::$classMapDirty = true; return true; } } self::$classMap[$uclass] = false; self::$classMapDirty = true; return false; }