ini_set('display_errors', 'Off');
error_reporting(E_ALL ^ E_DEPRECATED);
function __autoload($class_name) {
if (preg_match("/[a-zA-Z]Controller/", $class_name)) {
$class_name = str_replace("Controller", "", $class_name);
require_once "app/controllers/" . strtolower($class_name) . "_controller.php";
} else {
require_once "app/models/" . strtolower($class_name) . ".php";
}
}
require_once("lib/spyc.php");
require_once("lib/i18n.php");
require_once("lib/routes.php");
require_once("lib/config.php");
require_once("lib/controller.php");
require_once("lib/model.php");
function p($object) {
echo "
";
print_r($object);
echo "
";
}
if (!function_exists('get_called_class')) {
function get_called_class($bt = false, $l = 1) {
if (!$bt)
$bt = debug_backtrace();
if (!isset($bt[$l]))
throw new Exception("Cannot find called class -> stack level too deep.");
if (!isset($bt[$l]['type'])) {
throw new Exception('type not set');
} else {
switch ($bt[$l]['type']) {
case '::':
$lines = file($bt[$l]['file']);
$i = 0;
$callerLine = '';
do {
$i++;
$callerLine = $lines[$bt[$l]['line'] - $i] . $callerLine;
} while (stripos($callerLine, $bt[$l]['function']) === false);
preg_match('/([a-zA-Z0-9\_]+)::' . $bt[$l]['function'] . '/', $callerLine, $matches);
if (!isset($matches[1])) {
// must be an edge case.
throw new Exception("Could not find caller class: originating method call is obscured.");
}
switch ($matches[1]) {
case 'self':
case 'parent':
return get_called_class($bt, $l + 1);
default:
return $matches[1];
}
// won't get here.
case '->':
switch ($bt[$l]['function']) {
case '__get':
// edge case -> get class of calling object
if (!is_object($bt[$l]['object']))
throw new Exception("Edge case fail. __get called on non object.");
return get_class($bt[$l]['object']);
default: return $bt[$l]['class'];
}
default: throw new Exception("Unknown backtrace method type");
}
}
}
}
session_name(Config::get("application_name"));
$router = Routes::read();
if ($router->controllerExists()) {
$class = $router->classController();
$action = $router->action();
$controler = new $class($router);
} else {
die("Você está tentando acessar um action não existente.");
}
?>