Compatible con hosting compartido
La raíz puede vivir en cPanel y el `.htaccess` manda todo a `public/`, sin tocar document root si el hosting no te deja.
Microframework PHP limpio para fronts, APIs y paneles privados.
Empieza desde una base ordenada, con entrada en public/, auto-routing por convencion,
areas configurables, CSRF, sesiones, CLI y base de datos opcional. Sin usuarios ni panel admin
obligatorios: cada proyecto define su estructura.
La idea
Sirve para proyectos simples y también para sistemas con paneles. Empieza pequeño, y cuando necesites áreas privadas, rutas explícitas o base de datos, ya tienes el core listo.
La raíz puede vivir en cPanel y el `.htaccess` manda todo a `public/`, sin tocar document root si el hosting no te deja.
No trae `users`, `admin` ni módulos demo forzados. La DB es opcional y cada proyecto crea sus migraciones.
Puedes crear `/admin`, `/post`, `/api`, `/users`, `/pos` o cualquier panel. Cada area puede pedir login o ser publica.
Auto-routing
Oxira combina rutas explícitas con routing por convención. Si el controller existe, la URL puede resolverlo sin registrar manualmente cada pantalla.
/api/ping
App\Controllers\Api\PingController@index()
/admin/products/create
App\Controllers\Admin\ProductsController@create()
/admin/products/7/edit
App\Controllers\Admin\ProductsController@edit(7)
/post/categories
App\Controllers\Post\CategoriesController@index()
// config/security.php
'reserved_areas' => ['api', 'admin', 'post'],
'default_controllers' => [
'front' => 'Index',
'api' => 'Ping',
'admin' => 'Dashboard',
'post' => 'Index',
],
'protected_areas' => [
'admin' => 'admin',
],
'auth_redirects' => [
'admin' => '/admin/login',
],
'auth_exceptions' => [
'admin' => ['login'],
],
Cómo se usa
Sube todo a tu hosting o trabaja localmente con PHP.
Si esta en subcarpeta, usa `APP_BASE_PATH=/nombre`.
Valida PHP, extensiones, storage y entrada pública.
El CLI crea controller, vistas y te muestra las URLs esperadas.
# Servidor local
php -S localhost:8000 -t public
# Ver rutas explícitas
php oxi route:list
# Previsualizar auto-routing
php oxi route:guess Admin/Products
# Migraciones opcionales
php oxi migrate
php oxi seed
La DB es opcional. Si la usas, se recomienda nombrar tablas en ingles, plural y `snake_case`: `posts`, `orders`, `password_resets`.
Con `DB_PREFIX=oxi_`, `DB::table('posts')` resuelve `oxi_posts`, útil cuando varias apps comparten una base.
Publicación
Si el hosting permite cambiar document root, apunta a `public/`. Si estás en cPanel compartido, sube todo el proyecto y deja que el `.htaccess` raíz mande internamente a `public/`.
Descarga la versión limpia para iniciar un proyecto nuevo.
Descargar ZIP Leer documentación