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

PHP OO llamar a un metodo protegido desde clase extendida

Estas en el tema de llamar a un metodo protegido desde clase extendida en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy dando mis primeros pasos en poo y encontre problemas en manejar algunos metodos. Tengo establecido un directorio donde cada clase en un archivo con ...
  #1 (permalink)  
Antiguo 16/05/2012, 09:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 47
Antigüedad: 16 años, 11 meses
Puntos: 0
Pregunta llamar a un metodo protegido desde clase extendida

Estoy dando mis primeros pasos en poo y encontre problemas en manejar algunos metodos.
Tengo establecido un directorio donde cada clase en un archivo con nomenclatura class.nombre_clase.inc.php todos dentro de un directorio inc.

El problema es que tengo una clase extendida y hace un require(); de la cual se extiende y al querer llamar a un metodo en la clase extendida me da un error.

tengo la clase base

Código PHP:
class Page{
    var 
$titulo "Mi pagina OPP";
    var 
$main_content;
    
    public function 
setTitle($title){
            
$this->titulo $title;
    }
    protected function 
getTitle(){
            return 
$this->titulo;
    }
    public function 
setMainContent($main){
            
$this->main_content $main;
    }
    protected function 
getMainContent(){
            return 
$this->main_content;
    }

la clase extendida que utiliza un metodo de la clase base

Código PHP:
require('class.page.inc.php');
class Print extends 
Page{
    
    public function 
printTitle(){
        return 
$this->getTitle(); // llamo al metodo protected
    
}
    public function 
printContent(){
        return 
$this->getMainContent(); // llamo al metodo protected
    
}

Luego me tira el siguiente error al crear el objeto en el index.php
Parse error: syntax error, unexpected T_PRINT in C:\wamp\www

y este es mi index.php donde uso __autoload

function __autoload($class_name)
{
require('inc/class.'.$class_name.'.inc.php');
}
$index = new Print;
?>
<html>
<head>
<title>
<?php
$index->setTitle('mi pagina carajo');
echo $index->printTitle();
?>
</title>
</head>
<body>
<h3>Contenido</h3>
</body>
</html>

Cual podria ser el error, o solo seria problema de rutas... y otra pregunta seria si esta bien utilizada la metodologia que use en clases en archivos separado y llamar luego con __autoload
  #2 (permalink)  
Antiguo 16/05/2012, 09:43
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: llamar a un metodo protegido desde clase extendida

El problema es el nombre de tu clase, print es una palabra reservada de PHP, no la puedes usar como nombre de clase.

Saludos.
  #3 (permalink)  
Antiguo 16/05/2012, 10:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 47
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: llamar a un metodo protegido desde clase extendida

Gracias GatorV...! Lo cambie a class.output.inc.php que sera la clase que imprima salidas a las paginas, y que te parece esta forma en la que estoy desarrollo, Lo he leido que es una buena forma de manejar clases, Esta bien esta metodologia o Cual otras serian "Buenas practicas" para el desarrollo opp?
  #4 (permalink)  
Antiguo 16/05/2012, 10:47
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: llamar a un metodo protegido desde clase extendida

Lee el principio de Liskov, así podrás tener una mejor idea de cuando y porque heredar.

Saludos.

Etiquetas: poo
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 19:42.