Un "Controlador" no es nadamas que una clase que se encarga de realizar metodos, afectar el modelo, obtener datos, procesar datos y pasar el resultado a la vista para ser rendereado ya como html, xml, etc.
Si a lo que te refieres es un dispatcher/router, puedes iniciar con algo muy sencillo:
Código PHP:
class Router {
public function __construct() {}
public class route() {
$controller = $_GET['controller'];
$action = $_GET['action'];
if( !$controller ) $controller = 'index';
if( !$action ) $action = 'indexAction';
else $action = $action . "Action";
$controllerLocation = getcwd() . '/controllers/' . $controler . '.php';
if( file_exists( $controllerLocation ) ) {
include_once( $controllerLocation );
} else {
throw new Exception("No se encuentra el controlador $controllerLocation");
}
if( class_exists( $controller, false ) ) {
$cont = new $controller();
} else {
throw new Exception( "Controller Class not found $controller" );
}
if( method_exits( $cont, $action ) ) {
$cont->$action();
} else {
throw new Exception( "Action not callable $action" );
}
/*Ya a partir de aqui necesitas obtener las variables desde tu
controlador, y crear una instancia de la vista y pasarle las variables para
renderear tu html.*/
}
}
Y asi usas tu archivo:
Código PHP:
include( "Router.php" );
$router = new Router();
$router->route();
y ya llamas a tu index.php:
Código:
pagina.com/index.php?controller=Clientes&action=verClientes