LegoBox PHP es un micro-framework MVC para proyectos con PHP y MySQL, ligero y modular, que empecé a construir en 2016 y que hoy, en su quinta versión, sigo usando como base de mis propios sistemas en producción.
El micro framework Legobox PHP es una estructura mínima y ordenada, pensada específicamente para el tipo de sistemas que construyo: inventarios, puntos de venta, cobros, agendas y paneles administrativos en PHP y MySQL.
Mira aqui como Crear el Modelo-Vista-Controlador (MVC) con PHP y MySQL.
La filosofía es sencilla: dar la estructura suficiente para que un proyecto no se vuelva caótico, sin imponer todo lo que no vas a necesitar.

Los problemas que resuelve
La falta de estructura en proyectos PHP “sueltos”. Es muy común empezar un proyecto pequeño mezclando HTML, lógica de negocio y consultas a la base de datos en el mismo archivo. Funciona al principio, pero se vuelve insostenible en cuanto el proyecto crece — cualquier cambio implica tocar el mismo archivo gigante donde vive todo.
El peso de un framework completo para proyectos que no lo necesitan. Los frameworks completos son excelentes herramientas, pero traen consigo un ecosistema completo de convenciones, dependencias y actualizaciones que hay que mantener. Para un sistema interno de una institución, que puede necesitar seguir funcionando sin cambios mayores durante años, esa complejidad adicional no siempre es una ventaja — a veces es un riesgo.
Repetir el mismo trabajo en cada proyecto nuevo. Conexión a base de datos, manejo de sesiones, validación de formularios, respuestas de API — sin una base reutilizable, estas piezas se reescriben (y se cometen los mismos errores) una y otra vez.
LegoBox PHP existe en el punto medio: suficiente estructura para ordenar el proyecto, suficientemente ligero para entenderlo por completo.
Estructura del proyecto
lb-min-5/ ├── .htaccess # Reescritura de URLs para Apache (Front Controller) ├── composer.json # Configuración de dependencias y PSR-4 Autoload ├── index.php # Front Controller y definición de rutas ├── public/ # Vistas Twig y Assets estáticos │ ├── layouts/ │ │ └── main.html.twig # Plantilla principal heredable │ └── persons/ # Ejemplo de módulo ├── core/ │ ├── autoload.php # Carga de controladores base │ ├── controller/ │ │ ├── Database.php # Conexión a la base de datos │ │ ├── LbModel.php # Mini-ORM base (PDO) │ │ ├── Request.php # Objeto de solicitud HTTP y validación │ │ ├── Response.php # Helper para respuestas JSON / API REST │ │ ├── Session.php # Gestor de sesión y mensajes flash │ │ └── ViewEngine.php # Wrapper del motor de plantillas │ └── app/ │ ├── model/ # Modelos de datos │ └── service/ # Lógica de negocio
Cada carpeta tiene una única responsabilidad. Los controladores base viven en core/controller/, la lógica de negocio de cada módulo vive en core/app/service/, y las vistas están completamente desacopladas en public/. No hay magia oculta — cualquiera que abra el proyecto puede entender el flujo completo en minutos.
Funcionalidades ya incluidas
LegoBox PHP v5 no llega vacío. Trae un módulo de autenticación y un módulo de ejemplo completo, listos para usar o adaptar a tu propio proyecto:
- Inicio y cierre de sesión — login funcional contra la tabla
user, con su correspondiente logout. - Autenticación segura con
password_hash()/password_verify()— contraseñas cifradas con Bcrypt, el estándar recomendado por PHP, con migración transparente de hashes antiguos al iniciar sesión. - Registro de usuarios — alta de nuevas cuentas en la misma tabla de usuarios.
- Roles y estado de cuenta — cada usuario tiene un tipo (
kind) y un estado (status, activo/inactivo), listos para construir control de acceso sobre ellos. - CRUD de Personas — un módulo completo de ejemplo (listar, crear, editar, eliminar) que funciona como plantilla para cualquier módulo nuevo que quieras agregar.
Todo esto ya está definido en el schema.sql que se importa en el paso de instalación — no necesitas construir el login desde cero para empezar a probar el framework.
Descargar
LegoBox PHP es de código abierto y está disponible en GitHub:
- Repositorio: github.com/evilnapsis/lb-min
- Descarga directa (.zip): descargar la última versión
Coloca el proyecto dentro del directorio raíz de tu servidor web (por ejemplo, C:\xampp\htdocs\lb-min), ya sea clonando el repositorio o descomprimiendo el .zip.
Instalar
1. Importa la base de datos
mysql -u root -p < schema.sql
2. Configura la conexión
Edita tus credenciales en core/controller/Database.php:
function __construct(){
$this->user = "root";
$this->pass = "";
$this->host = "localhost";
$this->ddbb = "mi_base_de_datos";
}3. Instala las dependencias
composer install
Y con eso el proyecto queda listo para correr en cualquier hosting con PHP 8 — cPanel, XAMPP o un VPS — sin necesitar Node.js ni compiladores adicionales.
Novedades en la versión 5
Diez años después de la primera versión, esta v5 es la actualización más importante que le he hecho al framework:
- Motor de plantillas Twig 3 — vistas completamente desacopladas de la lógica.
- Enrutador FastRoute — URLs limpias (
/persons,/person/1) en vez de query strings. - Mini-ORM
LbModelsobre PDO — consultas preparadas por defecto, con métodos comofind(),all(),where()ysave(). - Capa de Servicios — separa la lógica de negocio de los controladores.
- Objeto
Requestcon validación integrada —Request::validate()para reglas comorequiredoemailsin escribir el chequeo a mano cada vez. - Respuestas JSON con
Response::json()— para construir endpoints de API rápido. - Autenticación con
password_hash()ypassword_verify()— Bcrypt en vez de esquemas de hash obsoletos, con migración transparente de contraseñas antiguas. - Mensajes flash de sesión — notificaciones de un solo uso entre redirecciones.
- Autoloading PSR-4 vía Composer — el estándar de carga de clases del ecosistema PHP moderno.
Vale la pena decirlo con claridad: LegoBox PHP no reinventa el motor de plantillas ni el enrutador desde cero — usa Twig y FastRoute, dos componentes probados por el ecosistema PHP. Lo que sí construyo yo, y controlo por completo, es la arquitectura que los conecta. No es lo mismo depender de un framework completo que decidir, con criterio propio, qué piezas usar y cómo se relacionan entre sí.
Por qué sigue vivo después de 10 años
Es la base sobre la que he construido todos mis sistemas en producción — inventarios, puntos de venta, agendas, paneles administrativos — durante una década.
En los próximos artículos voy a entrar en la arquitectura con más profundidad — cómo funciona el enrutamiento por dentro, cómo está pensado LbModel, y una comparativa honesta de en qué casos LegoBox PHP tiene sentido frente a un framework completo.
Te puede interesar – Inventio Max: Sistema de Inventario y Ventas Multi-Sucursal
¿Tienes dudas sobre cómo adaptarlo a tu propio proyecto? Déjamelas en los comentarios.