Hola GatorV,
empezando a toquetar e hice esto:
Código php:
Ver originalclass FrontController
{
static function main()
{
/**
* funcion para cargar todas las clases del core
*/
function recursiveInclude($path) {
foreach($dir as $k => $v)
include_once($path.$v);
elseif ( is_dir($path.$v) && ($v != ".") && ($v != "..") && ($v != 'smarty') ) recursiveInclude($path.$v."/");
}
$ubicacion=explode('/',$_SERVER['PHP_SELF']); //Incluimos todas las clases:
if($ubicacion[2]=="admin"){
include_once '../core/clases/class.config.php';
recursiveInclude('../core/clases/');
}
else{
include_once 'class.config.php';
recursiveInclude('core/clases/');
}
if($ubicacion[2]=='admin'){
require '../configuracion.php'; //Archivo con configuraciones.
}
else{
require 'configuracion.php';//Archivo con configuraciones.
}
//Con el objetivo de no repetir nombre de clases, nuestros controladores
//terminaran todos en Controller. Por ej, la clase controladora Items, será ItemsController
//Formamos el nombre del Controlador o en su defecto, tomamos que es el IndexController
if(! empty($_REQUEST['controlador'])){ $controllerName = $_REQUEST['controlador'].'Controller';
$controllerFolder = $_REQUEST['controlador'];
}
else{
$controllerName = "indexController";
$controllerFolder = 'index';
}
//Lo mismo sucede con las acciones, si no hay accion, tomamos index como accion
if(! empty($_REQUEST['accion'])) $actionName = $_REQUEST['accion'];
else
$actionName = "index";
//verifico si esta en el admin o no
if(!isset($_SESSION['admin'])&&$ubicacion[2]!='admin'){ $controllerPath = $config->get('controllersFolder') . $controllerFolder . '/'.$controllerName.'.php';
$config->set('viewsFolder',$config->get('controllersFolder') . $controllerFolder . '/templates/');
$templates=$config->get('adminControllerFolder') . $controllerFolder . '/templates/';
$config->set('viewsFolders',$templates);
//$error404 = $config->get('controllersFolder').'error404/error404Controller.php';
}
else{
$controllerPath = $config->get('adminControllerFolder') . $controllerFolder . '/'.$controllerName.'.php';
$templates=$config->get('adminControllerFolder') . $controllerFolder . '/templates/';
$config->set('viewsFolders',$templates);
$config->set('templates',$config->get('adminViewsFolder'));
$error404 = $config->get('adminControllerFolder').'error404/error404Controller.php';
}
//Incluimos el fichero que contiene nuestra clase controladora solicitada
require $controllerPath;
else
die('El controlador no existe - 404 not found<br/>'.$controllerPath); //require $error404;
//echo $error404;
//Si no existe la clase que buscamos y su acción, tiramos un error 404
{
trigger_error ($controllerName . '->' . $actionName . ' no existe', E_USER_NOTICE); return false;
}
//Si todo esta bien, creamos una instancia del controlador y llamamos a la accion
$controller = new $controllerName();
$controller->$actionName();
}
}
pero cuando quiero entrar a elstitio/admin/
me salta el error:
El controlador no existe - 404 not found
y si imprimo la ruta del controlador sale:
admin/controladores/index/indexController.php
y el indexController tiene esto:
Código php:
Ver originalclass indexController extends Controller {
public function index(){
$hola="Hola mundo";
echo $hola;
}
}
estoy armando mal el frontcontroller?, como sería eso del router?