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

Destruir un objeto en el constructor

Estas en el tema de Destruir un objeto en el constructor en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Me da que no es posible pero por si acaso pregunto. Tengo un contructor al que le paso un id para recuperar datos de una ...
  #1 (permalink)  
Antiguo 10/06/2011, 01:41
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Destruir un objeto en el constructor

Me da que no es posible pero por si acaso pregunto.

Tengo un contructor al que le paso un id para recuperar datos de una bd. Si ese id es incorrecto, lo que hago es carga la variable miembro $this->msg para saberlo ya que un contructor nunca devuelve false aunque le pongas return false;.

Luego he intentado que en lugar de devolver false, llamar a __destruct para que elimine el objeto "mal" creado pero sigue devolviendo el objeto.

Con el patrón Factory creo que sería viable pero me gustaría saber si como digo arriba es posible.

Gracias.
  #2 (permalink)  
Antiguo 10/06/2011, 03:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Destruir un objeto en el constructor

Que tal cluster28,

Así no funciona __destruct, deberías leer la doc al respecto, lo que puedes hacer es lanzar una excepción en el constructor, aunque me parece mejor separar, primero recuperar los datos de la bbdd y si estos son correctos crear el objeto.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 10/06/2011, 03:27
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 11 meses
Puntos: 32
Respuesta: Destruir un objeto en el constructor

Lo de la excepción no es mala idea. Voy a probar gracias.

Etiquetas: constructor, objeto
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 21:07.