コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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));
         }
     }
 }