Les escribo ya que necesito de su ayuda, tengo lo siguiente:
- Una clase padre llamada controllerBase donde instancio la clase registry y la vista. Ademas tengo un par de metodos y es aqui donde tengo el problema, uno de los metodos lo quiero ocupar para cargar los modelos que le indique cada controlador, pero no me funciona. Pondré el codigo.
Código:
public function ControllerBase() { $this->view = new View(); $this->registry = registry::singleton(); } public function loadModel($_modelName) { self::ControllerBase(); //no se si eso estara bien pero llevo largo rato intentando que funcione y fue lo unico que se me ocurrio, quizas probocado por el cansancio mental y la fustracion que se ha hecho presente. $_modelNameFile = $this->registry->get('modelsFolder').$_modelName.'php'; if (file_exists($_modelNameFile) && is_file($_modelNameFile)) { require $this->registry->get('modelsFolder').$_modelName.'php'; $this->model = & new $_modelName(); return $this->model; // se supone que ahi retorno la instancia. } else { //mensaje : modelo no existe. return false; } }
- El parametro del nombre del modelo se lo paso mediante el contructor del controlador a quien se esta invocando. Ahora quiero saber como hago para utilizar la instancia(modelo), ya que segun tengo entendido el constructor no retorna elementos. Utilizo el constructor de la clase hijo(itemsController) para llamar al metodo que retorna la instancia del modelo de la clase padre(controllerBase->loadModel()), esta bien?
- Sera una alternativa utilizar la clase registry para registrar ese objeto y luego llamarlo desde el controlador.
La pregunta es como puedo utlizar la instancia del modelo que llamo desde el constructor de la clase hija a un metodo de la clase padre.
Espero se haya entendido
Saludos