/** * Load a class * Return true if class loaded successfully or is already loaded * * @param string $className * @todo Odd Classes * @return bool */ static function loadClass($className) { if (class_exists($className, false)) { return true; } $pos = strpos($className, "_"); if ($pos !== false) { $module = substr($className, 0, $pos); if (isset(CHOQ_Module::$instances[$module])) { foreach (self::$classFolders as $folder) { $classPath = CHOQ_Module::$instances[$module]->directory . DS . $folder . DS . str_replace(array("\\/", "/", "_"), DS, substr($className, $pos + 1)) . ".class.php"; if (file_exists($classPath)) { if (CHOQ::isMode(CHOQ::MODE_DEV)) { foreach (self::$classFolders as $subFolder) { if ($subFolder == $folder) { continue; } $path = str_replace(DS . $folder . DS, DS . $subFolder . DS, $classPath); if (file_exists($path)) { error("Duplicate classes found in {$classPath} and {$path}"); } } } require $classPath; if (method_exists($className, "onAutoload")) { $className::onAutoload(); } return true; } } } } $path = CHOQ_ROOT_DIRECTORY . DS . "modules" . DS . $className . DS . $className . ".class.php"; if (file_exists($path)) { require $path; return true; } return false; }
/** * Set error header * * @param mixed $code * @param string $message */ public static function setHeader($code, $message) { if (!headers_sent()) { header("HTTP/1.1 {$code} Aliens disrupting"); if (CHOQ::isMode(CHOQ::MODE_DEV)) { header("X-ERROR: " . str_replace(array("\n", "\r", "\t"), "", $message)); } } }