Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

como capturo esta excepcion

Estas en el tema de como capturo esta excepcion en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/01/2010, 14:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 4 meses
Puntos: 2
Pregunta como capturo esta excepcion

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

Última edición por Fenris; 29/01/2010 a las 14:46
  #2 (permalink)  
Antiguo 31/01/2010, 07:40
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Respuesta: como capturo esta excepcion

Estimado,

¿Por qué la complicas tanto? ¿Qué necesidad de enviar el Controlador al Modelo?

El patrón MVC no está pensado para que el Modelo conozca al Controlador.

Ese es el problema, conceptual.

PD: no te acostumbres a las soluciones complicadas, usa como criterio que si de entrada salen así, están mal. Seguro hay una solución más sencilla, y el arte es lograr soluciones sencillas, no complejas.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Etiquetas: excepcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:16.