Beispiel #1
0
 public function __call($name, $args)
 {
     if (in_array($name, $GLOBALS['G_DY']["auto_load_controller"])) {
         return syClass($name)->__input($args);
     } elseif (!method_exists($this, $name)) {
         syError("方法 {$name}未定义!<br />请检查是否控制器类(" . get_class($this) . ")与数据模型类重名?");
     }
 }
Beispiel #2
0
 public function display($tplname)
 {
     try {
         $this->addfuncs();
         $this->displayed = TRUE;
         if ($GLOBALS['G_DY']['view']['debugging'] && SP_DEBUG) {
             $this->engine->debugging = TRUE;
         }
         $this->engine->display($tplname);
     } catch (Exception $e) {
         syError($GLOBALS['G_DY']['view']['engine_name'] . ' Error: ' . $e->getMessage());
     }
 }
Beispiel #3
0
 public function exec($sql)
 {
     $this->arrSql[] = $sql;
     if ($result = mysql_query($sql, $this->conn)) {
         return $result;
     } else {
         if (mysql_error() != '') {
             syError("{$sql}<br />执行错误: " . mysql_error());
         } else {
             return TRUE;
         }
     }
 }
Beispiel #4
0
function syClass($class_name, $args = null, $sdir = null, $force_inst = FALSE)
{
    if (preg_match("/^[a-zA-Z0-9_\\-]*\$/", $class_name) == 0) {
        syError("类定义不存在,请检查。");
    }
    if (TRUE != $force_inst) {
        if (isset($GLOBALS['G_DY']["inst_class"][$class_name])) {
            return $GLOBALS['G_DY']["inst_class"][$class_name];
        }
    }
    if (null != $sdir && !import($sdir) && !import($sdir . '/' . $class_name . '.php')) {
        return FALSE;
    }
    $has_define = FALSE;
    if (class_exists($class_name, false) || interface_exists($class_name, false)) {
        $has_define = TRUE;
    } else {
        if (TRUE == import($class_name . '.php')) {
            $has_define = TRUE;
        }
    }
    if (FALSE != $has_define) {
        $argString = '';
        $comma = '';
        if (null != $args) {
            for ($i = 0; $i < count($args); $i++) {
                $argString .= $comma . "\$args[{$i}]";
                $comma = ', ';
            }
        }
        eval("\$GLOBALS['G_DY']['inst_class'][\$class_name]= new \$class_name({$argString});");
        return $GLOBALS['G_DY']["inst_class"][$class_name];
    }
    syError($class_name . "类定义不存在,请检查。");
}
Beispiel #5
0
 private function checkrules($values)
 {
     $this->checkvalues = $values;
     foreach ($this->verifier["rules"] as $rkey => $rval) {
         $inputval = isset($values[$rkey]) ? $values[$rkey] : '';
         foreach ($rval as $rule => $rightval) {
             if (method_exists($this, $rule)) {
                 if (TRUE == $this->{$rule}($inputval, $rightval)) {
                     continue;
                 }
             } elseif (null != $this->add_rules && isset($this->add_rules[$rule])) {
                 if (function_exists($this->add_rules[$rule])) {
                     if (TRUE == $this->add_rules[$rule]($inputval, $rightval, $values)) {
                         continue;
                     }
                 } elseif (is_array($this->add_rules[$rule])) {
                     if (TRUE == syClass($this->add_rules[$rule][0])->{$this->add_rules[$rule][1]}($inputval, $rightval, $values)) {
                         continue;
                     }
                 }
             } else {
                 syError("未知规则:{$rule}");
             }
             $this->messages[$rkey][] = isset($this->verifier["messages"][$rkey][$rule]) ? $this->verifier["messages"][$rkey][$rule] : "{$rule}";
         }
     }
     return null == $this->messages ? FALSE : $this->messages;
 }