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

llamada a funcion

Estas en el tema de llamada a funcion en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Compañeros, estoy usando el MVC en php, tengo mi frontcontroller, donde tengo: Código PHP: <?php      class  FrontController {         static function  main (){              //Incluimos algunas clases:              ...
  #1 (permalink)  
Antiguo 30/03/2010, 09:49
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
llamada a funcion

Compañeros, estoy usando el MVC en php, tengo mi frontcontroller, donde tengo:
Código PHP:
<?php
    
class FrontController{
        static function 
main(){
            
//Incluimos algunas clases:
            
require 'libs/Config.php'//de configuracion
            
require 'libs/SPDO.php'//PDO con singleton
            
require 'libs/View.php'//Mini motor de plantillas
            
require 'libs/ControllerBase.php'//ControllerBase
            
require 'libs/ModelBase.php'//ModelBase
   
....
Bueno, en esa misma parte está la llamada a un controlador, digamos, IndexController

Código PHP:
class IndexController extends ControllerBase {
        function  
__construct() {
            
        }
        public function 
index(){
            
$this->view->show("index.php");
        }
    } 
Este hereda de ControllerBase

Código PHP:
    abstract class ControllerBase {
        protected 
$view;
        function 
__construct(){
            
$this->view = new View();
        }
    } 
El problema es que cuando quiero mostrar un "index.php" en IndexController, me sale este error:
Fatal error: Call to a member function show() on a non-object in C:\wamp\www\HumbertoDiaz\Controllers\IndexControll er.php on line 7

Que es cuando intento llamarlo, pero si intentara hacer esto:

Código PHP:
    class IndexController{
        function  
__construct() {
            
        }
        public function 
index(){
            
$this->view = new View();
            
$this->view->show("index.php");
        }
    } 
De esta forma si muestra index.php, pero ¿por qué no sirve cuando heredo de ControllerBase?

Saludos.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #2 (permalink)  
Antiguo 30/03/2010, 11:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: llamada a funcion

Lo que pasa es que tu definiste tu propio __construct() y eso evita que llames al __construct() de tu clase padre, necesitas ya sea dos cosas: no definas el __construct() en tu clase hija, o si lo haces llama al de la clase padre parent::__construct().

Saludos.
  #3 (permalink)  
Antiguo 30/03/2010, 12:34
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: llamada a funcion

Ah!
Bueno eso no lo sabía, muchas gracias GatorV.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Etiquetas: herencia, mvc
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 11:13.