<?php
$mark1=microtime();
/**
* Smvc - Simple MVC
* @package SMVC
* @author Paulo Rocha
* @copyright 2009 - 2009 Ahcor Design
* @license http://smvc.tk/manual/license.html
* @link http://smvc.tk
* @since Version 0.01
* @filesource http://smvc.tk/download
* @category Index
* @uses Enter point for SMVC
*/
session_start();
define('STATUS','true');
//instancia as classes principais = Configurações e DataBase.
$Smvc_config= new Smvc_config;
$Smvc_db= new Smvc_db;
//Desvia a execução para a função de tratamento de erros quando houver erros no sistema
@trigger_error("");
$erros = set_error_handler("trata_erros");
//carrega o controller (e função) default ou determinada pela URL.
if(file_exists(strtolower(CONTROLLERS.$Smvc_config->ctrl.'.php'))){
require_once (strtolower(CONTROLLERS.$Smvc_config->ctrl.'.php'));
$class = ucfirst($Smvc_config->ctrl);
$controller = new $class;
if ($Smvc_config->funcao==false){$controller->index();}else{
echo $controller->{$Smvc_config->funcao}($Smvc_config->parametros);}
}else{
echo "chegou!";
require_once(VIEWS."off.php");
}
//Funções que carregam as classes automaticamente.
function __autoload($class_name)
{
includeclass($class_name);
}
function includeclass($class_name){
$locais=array('_smvc/','_model/','_ctrl/','_view/','_library/','_drive/');
foreach($locais as $loc)
{
if(file_exists($loc.strtolower($class_name).'.php'))
require_once($loc.strtolower($class_name) . '.php');
}
}
//Função de tratamento de erros - grava um log de erro e sinaliza no browser(faze de depuração).
function trata_erros($num,$msg,$file,$line)//captura os erros do sistema:
{
if($msg==""){return false;}
$data=date("d/m/y");
$hora=date("H:i:s");
file_put_contents(PATH."_smvc/log.txt","||$num|$msg|$line|$file|$data|$hora",FILE_APPEND);
echo "<p align='right' style='position:fixed; bottom:0; left:0; color:#666; font-size:9px; font-family:Verdana,Tahoma;'>ERRO=$num|$msg|$file - ($line)|<p>";
//echo '<div align="center">Erro no sistema!<br><a href="'.URL.'">voltar.</a></div>';
//O código a seguir é para mostrar o conteúdo do LOG - TODO: deve ser criado uma plicação para isso.
/* $xxx=file_get_contents(PATH."_smvc/log.txt");
$valor=explode("||",$xxx);
$valor=explode("|",$valor[1]);*/
//require_once(VIEWS.'erro.php');
}
//mostra o uso de memória e tempo de execução total - setar a constante STATUS habilitará a exibição.
if(defined('STATUS')){
echo '<p align="right" style="position:fixed; bottom:0; right:0; color:#666; font-size:9px; font-family:Verdana,Tahoma;">Mem. '.number_format(intval(memory_get_usage()/1000), 0, ',', '.').' Kb ('.number_format(intval(memory_get_peak_usage()/1000),0,',','.').' Kb) | ';
echo number_format((microtime()-$mark1),3,',','.').' Seg.</p>';
}
?>