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

Unas dudillas..... y una clase

Estas en el tema de Unas dudillas..... y una clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola! Bueno, estoy desarrollando una clase en php (completamente gratis) para controlar las bases de datos MySQL ( Pincha aqui si quieres ir a la ...
  #1 (permalink)  
Antiguo 13/11/2007, 09:57
Avatar de thesixhalcon  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 1
Unas dudillas..... y una clase

Hola!

Bueno, estoy desarrollando una clase en php (completamente gratis) para controlar las bases de datos MySQL (Pincha aqui si quieres ir a la pagina de la clase) y me sugirieron el usar ActiveRecord en ella, me pasaron este link en el que podria ver como usarlo, pero la verdad me he quedado mas o menos igual, porque hay cosillas que no entiendo. Llevo mas o menos 4 años programando en php, y muy pocos manuales me he leido, porque me sirven de poco, no aprendo con ellos, si no viendo como se utiliza el codigo, pero esta vez no me ha servido jejeje :S.
Mis dudas son:
¿Para que sirven, cuando y como se utilizan?
- throw new Exception(....);
- parent::__construct();
- __construct();
-instanceof
- protected

¿Merecería la pena utilizar ActiveRecord en esta clase?
Si es asi, ¿Podriais explicarme de manera entendible como adaptarlo, o algo para aclararme?

Muchisimas gracias de antemano!
PD: Ah y podeis opinar sobre la clase MySQLHandler!
  #2 (permalink)  
Antiguo 13/11/2007, 10:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Unas dudillas..... y una clase

Cita:
Iniciado por thesixhalcon Ver Mensaje
¿Para que sirven, cuando y como se utilizan?
- throw new Exception(....);
- parent::__construct();
- __construct();
-instanceof
- protected

- throw new, sirve para lanzar una nueva Excepcion en caso de algun error.
- parent::__construct sirve para llamar al constructor de la clase padre
- __construct es una funcion especial que es llamada cuando se utiliza el operador new en una clase
- instanceof es un operador para comparar si una instancia de un objeto pertenece a una clase o a una interface ej:
Código PHP:
class Perro {}

$dogo = new Perro();

if( 
$dogo instanceof Perro ) {
       echo 
'$dogo es un Perro';

- protected sirve para delimitar que una variable, metodo o funcion es protegida, es decir su visibilidad es solo para la clase actual y las clases hijas, en cuyo caso se puede sobrecargar por las clases hijas.

Saludos.
  #3 (permalink)  
Antiguo 13/11/2007, 10:24
Avatar de thesixhalcon  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: Unas dudillas..... y una clase

O sea, que si yo pongo esto:
Código PHP:
<?php
class Mirar {
     function 
Mirar { echo "Mira! "; }
}
class 
Vaca {
     function 
Vaca() {echo "Una vaca";}
}
class 
Leche extends Vaca {
     function 
Leche() {
     
Mirar::__construct(); 
     
parent::__construct(); 
     echo 
" esta siendo ordeñada!";}
}
?>
Imprimiría por pantalla;
Código:
Mira! Una vaca esta siendo ordeñada!
A ver si alguien me responde a las otras preguntas del primer post :D

Ah, y que significan los dos puntos "::"?, porque a parte de eso, lo he visto en mas sitios.

Gracias!!
  #4 (permalink)  
Antiguo 13/11/2007, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Unas dudillas..... y una clase

No, necesitas aclarar tus conceptos de POO, esto no es una cuestión del código, cuando tu heredas una clase puedes usar parent para llamar a la clase padre.

Tus constructores FORZOSAMENTE se tienen que llamar __construct para que puedan ser llamados desde la clase hija o de lo contrario no serviría de nada.

Los dos puntos :: es un carácter de acceso a una clase cuando llamas a sus métodos estáticos, en el caso de parent::__construct tiene la función especial de llamar al constructor padre de una manera no estática.

Saludos.
  #5 (permalink)  
Antiguo 13/11/2007, 11:58
Avatar de thesixhalcon  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: Unas dudillas..... y una clase

1-. O sea que al constructor de la clase vaca, le podria llamar

__construct()

y funcionaria igual?

2-. Y si yo hago:

parent::Vaca();

funcionaria?, ya que sigue siendo un metodo estatico, por ser el constructor
  #6 (permalink)  
Antiguo 13/11/2007, 12:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Unas dudillas..... y una clase

La forma que lo estas haciendo es como se hacia antes en PHP4, en cuyo caso lo tienes que hacer asi:
Código PHP:
class Vaca {
       function 
Vaca() {
           echo 
"muuu";
       }
}

class 
Leche extends Vaca() {
       function 
Leche() {
              
$this->Vaca(); // llamamos explicitamente al constructor
       
}

En cambio si estas usando PHP5, forzosamente el constructor tiene que llamarse __construct.

Saludos.
  #7 (permalink)  
Antiguo 13/11/2007, 14:23
Avatar de thesixhalcon  
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 1
Re: Unas dudillas..... y una clase

Ahhh ahora lo tengo claro jeje ;) Gracias por ese detalle de PHP5

Ahora solo me falta las ultimas preguntillas ;)


Muchas gracias!
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 17:40.