Esempio n. 1
0
$params = (require 'config/routes.inc.php');
if (!$params || !isset($params['controller']) || $params['controller'] == 404) {
    header("HTTP/1.0 404 Not Found");
    include 'errors/404.php';
    return;
}
// Parse variables from router
$controllerName = ucwords($params['controller']);
$action = !empty($params['action']) ? $params['action'] : lcfirst($controllerName);
$directory = !empty($params['directory']) ? $params['directory'] . '/' : "";
$extra = !empty($params['extra']) ? $params['extra'] : array();
// Attempt to load controller
$controllerFile = Z_ENV_CONTROLLER_PATH . $directory . $controllerName . 'Controller.php';
Z_Core::debug($_SERVER['REQUEST_METHOD'] . " to " . Z_ENV_SELF);
Z_Core::debug("Controller is {$controllerFile}");
if (file_exists($controllerFile)) {
    require 'mvc/Controller.inc.php';
    require $controllerFile;
    $controllerClass = $controllerName . 'Controller';
    $controller = new $controllerClass($controllerName, $action, $params);
    $controller->init($extra);
    if (method_exists($controllerClass, $action)) {
        call_user_func(array($controller, $action));
        Z_Core::exitClean();
    } else {
        throw new Exception("Action '{$action}' not found in {$controllerFile}");
    }
}
// If controller not found, load error document
header("HTTP/1.0 404 Not Found");
include 'errors/404.php';
Esempio n. 2
0
 private function error($httpCode = 500, $code, $message = false, $attributes = array(), $elements = array())
 {
     header("Content-Type: text/xml");
     if ($httpCode) {
         header("HTTP/1.1 " . $httpCode);
     }
     $this->responseXML->error['code'] = $code;
     if ($message) {
         $this->responseXML->error = $message;
     }
     foreach ($attributes as $attr => $val) {
         $this->responseXML->error[$attr] = $val;
     }
     foreach ($elements as $name => $val) {
         $this->responseXML->{$name} = $val;
     }
     $xmlstr = $this->responseXML->asXML();
     // Strip XML declaration, since it will be added automatically when in XML mode
     $xmlstr = preg_replace("/<\\?xml.+?>\n/", '', $xmlstr);
     echo $xmlstr;
     $this->logRequestTime();
     Z_Core::exitClean();
 }