Estructura MVC base reutilizable
| Chequeo | Valor | Nota |
|---|---|---|
| Entorno | development · debug |
APP_ENV / APP_DEBUG en .env |
| Archivo .env | /home/donjesco/web/epochsokker.edgedialpremium.lat/public_html/.env detectado |
OK |
| APP_KEY | definida |
OK |
| Base de datos | mysql · 11.8.9-MariaDB-ubu2604 |
OK |
| Assets/uploads | escribible |
OK |
| Logs | /home/donjesco/web/epochsokker.edgedialpremium.lat/public_html/Logs/app-2026-10-25.log |
OK |
| Sesion | MVCSESSID |
OK |
| PHP | 8.5.12 · UTC |
OK |
Controllers/Productos.php
class Productos extends Controllers
{
public function productos() { ... }
public function ver($id) { ... }
}
productos · productos/ver/12
Models/ProductosModel.php
class ProductosModel extends Mysql
{
public function getAll()
{
return $this->select_all('SELECT * FROM productos');
}
}
$this->model en Productos
Views/Productos/productos.php
<?php loadView('header', $data); ?>
<h1><?= e($titulo) ?></h1>
<?php loadView('footer', $data); ?>
$this->renderView('productos', $data)
e(); no escapes la entrada.select_one($sql, ['id' => $id]).POST pide csrf_verify() y el form lleva .url('health') y asset('css/style.css') con cache-busting.loadView('sidebar', $data) → Views/Inc/sidebar.php.set_flash('success', '...') se muestran solos en el header.ErrorHandler responde 404/405/500 reales (y JSON si el cliente lo pide).$this->model->transaction(fn) → commit/rollback.MVC Base 1.0.0 · consultas en este request: 0 · /health