Base v2 • Reutilizable Multi-Proyecto

Un framework PHP MVC para crear cualquier sistema sin rehacer todo cada vez

Diseñado para producción real: web corporativa, tienda, blog, ERP, POS o API. Crea áreas como /admin, /user, /api, /pos y decide por configuración si cada área es pública o exige login.

Front público por defecto Subcarpetas ilimitadas Auto Routing Controller/Method Seguridad por áreas

Qué lo hace reutilizable de verdad

No solo es un proyecto ejemplo. Es una base que puedes clonar para nuevos clientes sin romper arquitectura.

Áreas configurables

Define áreas reservadas en config/security.php y el router las resuelve automáticamente.

  • /admin
  • /user
  • /api
  • /pos

Login por área

Decide por config qué área requiere sesión y a dónde redirigir si no hay login.

  • protected_areas
  • auth_redirects
  • auth_exceptions

Escalado por subcarpetas

Crea cientos de módulos sin registrar rutas manuales para cada pantalla.

  • Controllers/Admin/...
  • Controllers/Pos/...
  • Controllers/Api/...

Seguridad por área (público o privado)

El front queda libre por defecto. Tú eliges qué paneles exigen login.

Área Ejemplo URL Estado por defecto Cómo cambiarlo
/ (front) miempresa.com/ Público No ponerlo en protected_areas
/admin miempresa.com/admin Privado 'admin' => 'admin'
/api miempresa.com/api Público Puedes volverlo privado con rol
/pos miempresa.com/pos A tu elección Agregar área + rol en config
// config/security.php
'reserved_areas' => ['admin', 'user', 'api', 'pos'],

'protected_areas' => [
  'admin' => 'admin',
  'user'  => 'user',
  'pos'   => 'pos',      // area privada personalizada
  // 'api' => 'admin',   // si quieres API privada
],

'auth_redirects' => [
  'admin' => '/admin/login',
  'user'  => '/user/login',
  'pos'   => '/pos/login',
],

'auth_exceptions' => [
  'admin' => ['login', 'logout'],
  'user'  => ['login', 'logout'],
  'pos'   => ['login', 'logout'],
]

Auto Routing: URL => Controller sin fricción

No pierdes tiempo creando rutas para cada submódulo. Estructura de carpetas = comportamiento.

Convención

Ejemplo de mapeo por carpetas:

/admin/settings/currencies/15/edit
=> App\Controllers\Admin\Settings\CurrenciesController@edit(15)

/pos/ventas/caja/abrir
=> App\Controllers\Pos\Ventas\CajaController@abrir()

Rutas explícitas (si necesitas)

También puedes definir rutas por método HTTP:

// config/routes.php
'GET' => [
  '/admin/login' => [Admin\LoginController::class, 'index'],
],
'POST' => [
  '/admin/login/submit' => [Admin\LoginController::class, 'submit'],
]
El front (home, blog, tienda pública, landing pages) queda libre por defecto para SEO y contenido público. Solo protege las áreas internas que realmente lo necesitan.

Arquitectura de ejecución

Flujo de request: URL, Router, Auth, CSRF, Controller y respuesta

Listo para tus próximos proyectos

Esta base ya está preparada para:

  • CMS y blogs
  • Tiendas virtuales
  • Portales institucionales
  • Sistemas de gestión y POS
  • Backoffice + APIs internas

Siguiente paso recomendado: partir de esta base para Oxira EDU y crear módulos de recursos, categorías, descargas y generadores PDF.

Abrir documentación detallada Ver sitemap