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

objetos en php 6

Estas en el tema de objetos en php 6 en el foro de Frameworks y PHP orientado a objetos en Foros del Web. buenas, estaba leyendo un libro de PHP llamado PHP 6 profesional escrito por Ed lecky tompson Con Steveen D y Thomas Myer, y trata de ...
  #1 (permalink)  
Antiguo 16/10/2011, 07:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 32
Pregunta objetos en php 6

buenas, estaba leyendo un libro de PHP llamado
PHP 6 profesional escrito por Ed lecky tompson Con Steveen D y Thomas Myer, y trata de php6 y los objetos, el cual uno de sus ejemplos este :
Código PHP:
<?php header('Content-Type: text/html; charset=UTF-8');
interface 
BANDA {
    public function 
obtNombre();
    public function 
obtGenero();
    public function 
agrMusico(MUSICO $musico);
    public function 
obtMusicos();
}
interface 
MUSICO {
    public function 
agrIstrumento(INSTRUMENTO $instrumento);
    public function 
obtInstrumentos();
    public function 
enBanda(BANDA $banda);
    public function 
obtTipoMusico();
}
interface 
INSTRUMENTO {
    public function 
obtNombre();
    public function 
obtCategoria();
}
//////
class guitarrista implements MUSICO {
    private 
$nombre;
    private 
$apellido;
    private 
$tipoMusico;
    private 
$instumentos;
    private 
$bandaReferencia='';    
    function 
__contrunct($nombre$apellido) {
        
$this->apellido=$apellido;
        
$this->nombre=$nombre;
        
$this->instumentos=array();
        
$this->tipoMusico='guitarrista';
    }    
    public function 
obtNombre(){return $this->nombre.' '.$this->apellido;}
    public function 
agrIstrumento(INSTRUMENTO $instrumento){array_push($this->instumentos,$instrumento);}
    public function 
obtInstrumentos(){return $this->instumentos;}
    public function 
obtBanda(){return $this->bandaReferencia;}
    public function 
agrTipoMusico($tipoMusico){$this->tipoMusico=$tipoMusico;}
    public function 
enBanba(BANDA $banda){$this->bandaReferencia=$banda;}
    public function 
obtTipoMusico(){return $this->tipoMusico;}    
// [B]linea 38 es esta[/B]

class jefeGitarrista extends guitarrista {
    function 
__contrunct($nombre,$apellido) {
        
parent::__contrunct($nombre,$apellido);
        
$this->agrTipoMusico("jefe gitarrista");
    }
}

class 
bandaRock implements BANDA {
    private 
$musicos,$nombreBanda,$bandaGenero;
    function 
__construct($nombreBanda){
        
$this->nombreBanda=$nombreBanda;
        
$this->musicos=array();
        
$this->bandaGenero="rock";
    }
    public function 
agrMusico(MUSICO $musico){
        
array_push($this->musicos,$musico);
        
$musico->enBanda($this);
    }
    public function 
obtMusicos(){return $this->musicos;}
    public function 
obtNombre(){return $this->nombreBanda;}
    public function 
obtGenero(){return $this->bandaGenero;}
}

class 
guitarra implements INSTRUMENTO {
    private 
$itrNombre,$itrCategoria;
    function 
__construct($instrumentoNombre){
        
$this->itrNombre=$instrumentoNombre;
        
$this->itrCategoria='guitarra';
    }
    public function 
obtNombre(){return $this->itrNombre;}
    public function 
obtCategoria(){return $this->itrCategoria;}
}

//>> USO
    // fija valores
    
$losInormatiros = new bandaRock('Los Informaticos');

    
$alberto = new guitarrista('Alberto','Ramirez');
    
$mario = new guitarrista('Mario','Ramon');

    
$alberto->agrIstrumento(new guitarra('Gibson Les Paul'));
    
$mario->agrIstrumento(new guitarra('Fender Stratocaster'));
    
$mario->agrIstrumento(new guitarra('Hondo H-77'));

    
$losInormatiros->agrMusico($mario);
    
$losInormatiros->agrMusico($alberto);

    
// obtiene valores
    
    
var_dump($losInormatiros->obtMusicos()); // ver que hay aki antes de entrar en el foreach
    
    
foreach($losInormatiros->obtMusicos() as $musico){
        
//echo 'Musico: '.$musico->nombre().'<br>';
    
}
    echo 
'<hr>';
/* */
?>
se de PHP pero de objetos con php no tanto por eso me intereso este libro,

bien. La consulta es que en el ejemplo anterior, en el var_dump, tendria que darme el contenido de los músicos, pero por el contrario me sale este mensaje:
Código:
Fatal error: Class guitarrista contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (MUSICO::enBanda) in E:\miServidor\wb\php6\tes_musica.php on line 38
por lo cual no comprendo dad que esta exactamente como el ejemplo,

pienso que es por la versión de php ya que el elejmplo estara en la 6ta y mi version es 5.3.8, o el contains 1 abstract method que dice un método abstracto ?¿

como solucionar este problema
  #2 (permalink)  
Antiguo 16/10/2011, 07:25
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: objetos en php 6

Misspelling method error :P, comprueba el nombre del método, tu tienes guitarra::enBanba y en la interface esta definido como MUSICO::enBanda

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 16/10/2011, 07:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 32
Respuesta: objetos en php 6

Cita:
Iniciado por masterpuppet Ver Mensaje
Misspelling method error :P, comprueba el nombre del método, tu tienes guitarra::enBanba y en la interface esta definido como MUSICO::enBanda

Saludos.
La verdad no comprendo donde hay que cambiar ello
  #4 (permalink)  
Antiguo 16/10/2011, 08:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: objetos en php 6

Te recomiendo algun libro de PHP 5.3.x ya que PHP 6 esta muy lejos de completarse.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 16/10/2011, 08:05
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: objetos en php 6

Cita:
Iniciado por dukeblass Ver Mensaje
La verdad no comprendo donde hay que cambiar ello
Perdón, en realidad es guitarrista la clase, comprueba la clase. te has equivocado en el nombre del método, lo tienes como enBanba cuando deberia ser enBanda.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 16/10/2011, 08:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 32
Respuesta: objetos en php 6

Cita:
Iniciado por masterpuppet Ver Mensaje
Perdón, en realidad es guitarrista la clase, comprueba la clase. te has equivocado en el nombre del método, lo tienes como enBanba cuando deberia ser enBanda.

JODERRRRRR...

que ciego, gracias.. melas e visto todas pero esa no . melas

gracias
  #7 (permalink)  
Antiguo 17/10/2011, 10:33
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: objetos en php 6

Es un buen libro, no lo cambies solo porque a php 6 le quede camino, es importante aprender el concepto POO

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #8 (permalink)  
Antiguo 09/11/2011, 00:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: objetos en php 6

disculpa, podrias compartir el libro que dices php 6 profesional,
  #9 (permalink)  
Antiguo 09/11/2011, 02:24
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: objetos en php 6

http://www.casadellibro.com/libro-pr...526341/1339131

No lo tengo digitalizado y dudo que lo pueda subir...

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #10 (permalink)  
Antiguo 09/11/2011, 02:59
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: objetos en php 6

Cita:
Iniciado por dukeblass Ver Mensaje
buenas, estaba leyendo un libro de PHP llamado
PHP 6 profesional ...La consulta es que en el ejemplo anterior, en el var_dump, tendria que darme el contenido de los músicos, pero por el contrario me sale este mensaje:
Código:
Fatal error: Class guitarrista contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (MUSICO::enBanda) in E:\miServidor\wb\php6\tes_musica.php on line 38
por lo cual no comprendo dad que esta exactamente como el ejemplo,

pienso que es por la versión de php ya que el elejmplo estara en la 6ta y mi version es 5.3.8, o el contains 1 abstract method que dice un método abstracto ?¿

como solucionar este problema
Hola dukeblass,

Hace tiempo hice un comentario al respecto, este libro me lo compré cuando me interesé por aprender como funciona php y sus objetos. Pero a pesar de que la información es muy buena, y tiene cantidad de ejemplos prácticos, los señores de la editorial han cometido muchos fallos al pasar los códigos. Así que encontrarás muchas erratas, palabras cambiadas, en muchas ocasiones ponen un "-" donde debería ir un "->".

Sin ir más lejos, en la pág. 65 el bloque de code que hay arriba.
Código PHP:
public function setMusicianType($musicianType) {
    
//la separacion despues del guión da error
    
$this- > type $musicianType;

En la página anterior te encuentras lo mismo.

Y si estás comenzando, pues resulta desesperante que de lo que estás aprendiendo venga con errores de ese tipo.

Pero me reitero en lo dicho al principio, a mi juicio, me pareció muy interesante.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: apache, objetos, php6
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 07:31.