Hola a todos
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:
public 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;
}
}
Controlador
Código:
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();
}
}
Espero sus comentarios y sugerencias.
Saludos