Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/12/2008, 06:10
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Duda: Como inicializar propiedades públicas (filtradas) de un objeto

Cita:
Últimamente me estoy poniendo en serio con POO en PHP5 —hasta hace poco casi todo el código en mis aplicaciones era PHP5 al estilo de PHP4, y quiero que eso cambie—,
Ahora ahora lo que vi no es muy serio Estaría bueno que vieras otros manuales de POO genéricos y no solo el manual de PHP5, ya que es un manual técnico y de sintaxis, no de programación y conceptos.

Cita:
y hoy me ha surgido una duda: ¿Cual es la forma óptima de inicializar una propiedad pública, pero filtrada, de un objeto?
¿Optimizar? ¡Si aún no es funcional!

Pregunta: ¿conoces el principio KISS? Veo que lo violas constantemente

Lo que intentas hacer debe solucionarse directamente y de forma simple, mi sugerencia personal es que evites los __set y __get de PHP5 que no aportan nada bueno a un diseño POO (en la mayoría de los casos terminan generando el mismo efecto que si fueran atributos públicos), que existan tampoco quiere decir que los debas usar por defecto.

La solución debería ser así:

Código PHP:
class Prueba
{
    
   private 
$_a;
    
   public function 
__construct($a)
   {        
        
$this->_a = (string)$a;
        
   }      

Listo, no abuses de las excepciones, solo son para casos "excepcionales", no para cualquier situación.

Sugerencia: lee sobre getter / setter, todo esto ya está inventado hace mucho tiempo y perder tiempo en reinventar la rueda no es muy productivo.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com