예제 #1
0
 /**
  * Caso exista algum post na pagina, ele é tranformado em um objeto $model
  * e colocado como o primeiro argumento para receber no metodo do controller
  */
 private static function getPost(&$parameters)
 {
     if (isset($_POST) and count($_POST) > 0) {
         $post = $_POST;
         $classe = Controller::getTypeModel();
         $model = new $classe();
         foreach ($post as $key => $valor) {
             $ex = explode("_", $key);
             $count = count($ex);
             $result = '$model->';
             for ($i = 0; $i < $count; $i++) {
                 $result .= '$ex[' . $i . ']' . ($i == $count - 1 ? '= $valor == "" ? null : $valor;' : '->');
             }
             eval($result);
         }
         $arrayMerge = array("model" => $model);
         if (isset($_FILES)) {
             foreach ($_FILES as $file => $args) {
                 if (property_exists($model, $file)) {
                     $model->{$file} = $args;
                 } else {
                     $arrayMerge[$file] = $args;
                 }
             }
         }
         ModelState::TryValidationModel($model);
         $parameters = array_merge($arrayMerge, $parameters);
     }
     return $parameters;
 }
예제 #2
0
 public static function ThrowDef($mes, $display = true, $mes_user = '******', $params = 404)
 {
     $cfg = new Config();
     if ($cfg->getVar('application.writelog') == 1) {
         $log = new Log('error');
         $log->writeLog("\n");
         $log->writeLog("------------Exeption------------");
         $log->writeLog("time : " . date('h:i:s'));
         $log->writeLog('message : ' . $mes);
     }
     $staks = (array) debug_backtrace();
     if ($display != false) {
         self::$count_end = count($staks);
         self::printTrace($staks);
     }
     if ($cfg->getVar('application.writelog.trace') == 1) {
         $log->writeLog('trace : ' . self::$printTraceLog);
     }
     $error_view = new Controller();
     if ($cfg->getVar('application.trace_errors') == 1) {
         $error_view->viewError('error', self::$arTrace, $mes, $params);
     } else {
         $error_view->viewError('error_user', self::$arTrace, $mes_user, $params);
     }
     exit;
 }
예제 #3
0
<?php

use MVC\Controller;
use Thr\Exept as Exeption;
define("MODULE_DIR", dirname(__FILE__));
spl_autoload_register(function ($className) {
    $classes = MODULE_DIR . "/" . str_replace("\\", "/", $className) . ".php";
    $libs = APP_DIR . "/libs/" . str_replace("\\", "/", $className) . ".php";
    if (file_exists($classes)) {
        require_once $classes;
    } else {
        if (file_exists($libs)) {
            require_once $libs;
        } else {
            throw Exeption::ThrowDef("NOT FOUND CLASS - " . $libs);
        }
    }
});
$obj = new Controller();
$obj->run();