1- Clase principal: Aqui cargo toda la configuracion y tengo funciones generales para manejo de mensajes, errores, redirecciones, etc.
2- Clase
3- Clases
4- Clase especifica (model, view, controller) para cada modulo.
Ejemplo:
Código PHP:
Ver original
// Clase general class principal { public function __construct() {} // Obtener o crear instancia de un modelo public function getModel($model) { $file = "ruta/{$model}.model.php"; $class = $model . 'Model'; // try-catch para incluir el archivo // Verifico que exista la clase $this->_models[$model] = new $class(); } return $this->models[$model]; } // Crear archivo de cache public function saveCache($file, $contents) { // Guardo todo en un archivo } // Manejo de errores public function error($msg) { } } // Clase base para tener acceso a funciones generales en modelo, vista y controlador class base { protected function __construct() {} public function error($msg) { global $principal; $principal->error($msg); } } // Clase para modelos class myModel extends base { protected function __construct() {} public function saveCache($file, $contents) { global $principal; $principal->saveCache($file, $contents); } } // Modelo para configuracion del sistema class configModel extends myModel { public function __construct() { // Cargo la configuracion desde la base de datos // Si algo falla: parent::error('No se puede cargar la configuracion.'); } public function saveConfig($newValues) { // Guardo los nuevos valores de configuracion // Guardo todo en archivo de cache parent::saveCache('config', $this->_config); } }
Ok, ese es el resumen de lo que llevo hasta ahora, por el momento tengo la clase para conexion y manejo de base de datos "por fuera" y tengo que estar usando global $db; para tener acceso a sus metodos.
Todos los comentarios y sugerencias son bienvenidos. Gracias.