Espero que me ayuden, tratando de entender las excepciones me he metido en un lío, resulta que desde los controladores llamo a un método que carga un modelo, a este método le paso el nombre del modelo y el objeto controlador para que de esta forma tenga acceso a métodos del controlador en el modelo y pueda interactuar a través de este con la vista así tengo mi implementación. En el método que carga el modelo valido que me pasen un modelo (string) y un objeto controlador, si no me pasan un modelo o un objeto controlador envió una excepción, pero como muestro en la vista, esa excepción y que pasa con la excepción si no me pasan un controlador, no seria mejor en caso de que no me pasen un controlador usar la función die();
Metodo que carga el modelo
Código:
Controladorpublic function loadModel($_model, $_controllerClass) { if (is_string($_model) && (('' === $_model) || preg_match('/^\s+$/s', $_model)) ) { throw new Exception('ERROR : '.self::MODEL_IS_EMPTY); } else{ $_modelFile = Registry::get('modelsFolder').$_model.'Model.php'; } if (file_exists($_modelFile) && is_file($_modelFile)) { if ( is_object($_controllerClass) and is_subclass_of($this, $_controllerClass) ){ require Registry::get('modelsFolder').$_model.'.php'; return new $_model($_controllerClass); } else{ throw new Exception ('ERROR : '.self::NOT_OBJECT); } } else { throw new Exception ('ERROR : '.self::MODEL_NOT_EXIST); return false; } }
Código:
Espero sus comentarios y sugerencias.public function __construct(Request_Http $request = NULL){ try{ $this->_model = $this->loadModel('modelname', $this); $this->_model->setTableName(arreglo de tablas db )); } catch(Exception $e) { echo $e->getMessage(); } }
Saludos