Áreas configurables
Define áreas reservadas en config/security.php y el router las resuelve automáticamente.
- /admin
- /user
- /api
- /pos
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.
No solo es un proyecto ejemplo. Es una base que puedes clonar para nuevos clientes sin romper arquitectura.
Define áreas reservadas en config/security.php y el router las resuelve automáticamente.
Decide por config qué área requiere sesión y a dónde redirigir si no hay login.
protected_areasauth_redirectsauth_exceptionsCrea cientos de módulos sin registrar rutas manuales para cada pantalla.
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'],
]
No pierdes tiempo creando rutas para cada submódulo. Estructura de carpetas = comportamiento.
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()
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'],
]
Esta base ya está preparada para:
Siguiente paso recomendado: partir de esta base para Oxira EDU y crear módulos de recursos, categorías, descargas y generadores PDF.