El proyecto Alxarafe está en un proceso de reestructuración. Se está barajando empezarlo desde cero con Laravel.
Alxarafe, se lee Aljarafe, es un proyecto de software libre, que pretende convertirse en un entorno de desarrollo sencillo pero potente, diseñado con PHP 7.4 y composer, siguiendo un patrón de diseño MVC. No pretende llegar al tamaño de Laravel o Symfony, pero sí tener una curva de aprendizaje mucho menor.
El objetivo de Alxarafe, es construir un sistema robusto y escalable que pueda ser utilizado para desarrollar distintas aplicaciones añadiendo módulos, Alxarafe se encarga de ofrecer el soporte vital a dichos módulos.
Básicamente, el patrón de diseño MVC, consiste en separar el código en Modelo, Vista y Controlador. Existe mucha documentación sobre este patrón de diseño, por lo que no es difícil entenderlo y usarlo con éxito.
¿Cómo aplica Alxarafe el patrón de diseño MVC?
El patrón de diseño MVC (Modelo-Vista-Controlador), funciona en Alxarafe de la siguiente forma:
- El punto de entrada está en el archivo index.php del directorio principal, que carga la configuración y lanza un despachador que ejecuta un determinado controlador, de un determinado módulo.
- El controlador, puede utilizar distintos modelos que permiten acceder y manipular datos, en las tablas de la base de datos.
- El controlador, también establecerá una vista que mostrará el resultado en pantalla, y permitirá la interacción con el usuario.
El desarrollo de los modelos, se basan inicialmente en MySQL (o MaríaDB), pero es muy sencillo implementar cualquier otro motor de base de datos, pues utiliza para ello PDO.
Las vistas se basan en un sistema de temas y plantillas, implementados con Twig, que permiten una personalización completa del aspecto de la aplicación.
Funcionalidades de Alxarafe
Al estar aún en fase de desarrollo, puede no ser recomendable utilizarlo en producción, pero nos proporciona una herramienta con la que poder comenzar sin empezar desde cero.
Entre otras, Alxarafe proporciona las siguientes funcionalidades:
- Conexión con base de datos mediante PDO.
- Un despachador (dispatcher) que permite seleccionar el controlador a ejecutar según la URL.
- Gestión de modelos de tablas.
- Gestión de vistas usando Twig.
- Una barra de depuración con múltiples pestañas.
- Autenticación de usuarios.
Alxarafe podría ser una alternativa a frameworks como Laravel o Symfony que, sin dudas, proporcionan un mayor rendimiento; pero también es cierto, que a veces no merece la pena añadir tanta complejidad a un proyecto… O si…
Si está interesado en colaborar, puede hacerlo desde el repositorio rsanjoseo/alxarafe de Github.