Eso ultimo que escribiste seria como un Front controller si fuera mas "general", fijate que lo que llamas serian los controllers en un MVC .. donde como hablamos haces la otra separacion al incluir modelos (si los necesitas) y vistas (si los necesitas)
Todos esos IF ($_REQUES['algo']) se pueden reducir enormemente a algo como:
Código PHP:
Ver originalif (isset($_GET['controller'])) include 'controllers/'.$_GET['controller'].'.php';
else
include 'controllers/_main_.php';
No te aconsejo usar $_REQUEST por seguridad y eso mismo se puede mejorar:
Código PHP:
Ver originalinclude filter_controller($_GET['controller']));
filter_controller() podria ser el encargado de verificar si ese controlador esta registrado antes de hacer la inclusion y lo haria leyendo un archivo de configuracion y cargandolo como array()
Para esto ultimo puedes usar
parse_ini_file()