La idea sería desarrollar un pequeño framework MVC con PHP.
Que es un Framework:
Un framework es un conjunto de clases interrelacionadas que tiene como objetivo dar un "marco" de desarrollo a un tipo específico de aplicaciones. La idea es que esas clases no ayuden en tareas varias que nos evitan repetir código centralizando tareas generales.
Que es MVC:
MVC es un patrón de diseño de software que se corresponde con las siglas de
Modelo-Vista-Controlador
En desarrollo de sistemas la idea es manejarnos por las llamadas "buenas prácticas" y una premisa fundamental es justamente dividir responsabilidades entre componentes comunicados entre sí.
Vista:
En sistemas interactivos (requieren operación humana) llamamos Vista a la interfaz al usuario (UI). En desarrollo web la UI se desplegará en un navegador (Chrome, Firefox... ) y mostrará las diferentes "páginas" que componen el proyecto. En la UI podemos obtener desde el servidor y a requerimiento información formateada según lo solicitado o bien cargar y enviar datos desde el dispositivo cliente hacia el servidor.
Controlador:
El controlador es un componente que captura los requerimientos enviados desde el cliente, y los deriva a las clases que deben darle tratamiento. Un caso clásico es la vista requiere datos, el requerimiento llega al controlador, el controlador es invocado con la clase, el método y los parámetros enviados, luego el controlador deriva el pedido a otra clase como ser el Modelo.
Modelo:
La clase Modelo tiene como objetivo tomar requerimientos enviados desde el Controlador, y procesar datos referentes a la solicitud. Por ejemplo, la clase Modelo_Cliente puede ser invocada con el método "Obtener_Todos". El Modelo accede a las fuentes de datos (por ejemplo un motor SQL) obtiene los registros solicitados y los retorno como un array de datos al Controlador, a su vez el controlador formatea los datos (por ejemplo en JSON) y los retorna a la Vista.
Esta apertura entre diferentes componentes de acuerdo a la tarea que corresponde nos da flexibilidad en el diseño y separan el "cómo se obtiene y maneja la información" (Modelo) a el "cómo se muestra la información" (Vista). Todo esto con la coordinación necesaria de un intermediario (Controlador).
Hay un cuarto componente que no se menciona en MVC pero es fundamental para procesar este circuito.
Router:
El router es una rutina que toma la URL (Uniform Resource Locator) o sea un dirección web que se invoca en el requerimiento.
Una URL básica sería por ejemplo
http://www.misitiox123.com/
En MVC junto con la URL "raíz" adicionamos separados por barra, la clase a invocar y el método de esa clase
Supongamos que queremos obtener todos los datos de los clientes cargados en la base de datos. la idea sería invocar algo cómo
http://www.misitiox123.com/clientes/obtenertodos
donde http://www.misitiox123.com/ es la raíz, "clientes" es la "clase" a invocar y "obtener datos" es el método de la clase que se requiere ejecutar.
el router actúa como un "parser" o decodificador de la URL para obtener cual es la clase y cual es el método.