Ver Mensaje Individual
  #23 (permalink)  
Antiguo 11/02/2013, 18:20
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: Nueva versión de PHP 5.4

Confundes la herramienta (PHP), con el paradigma (OOP).
Si a OOP, le quitas que una clase es responsable de mantener sus datos, su estado, y la visibilidad de los mismos..No sé qué OOP, pura o impura, te queda.De hecho, nunca había oído que existía OOP "pura" e "impura"..

En el ejemplo anterior, la clase "prueba" está decidiendo qué cosas importa del trait uno, y del trait dos.Por lo tanto, es responsabilidad de la clase "prueba" el que tanto el trait "uno" y "dos" sigan siendo funcionales.
Cómo sabe el programador si usar la función "B" del trait "dos" es compatible con la función "B" del trait "uno"?
Que aún se puede llamar a la función "A" del trait "uno"?
Mirando el código de ambos traits.

Es más, si la clase que usa un trait, define una variable miembro como **privada**..pero un trait puede modificarla cuando quiera..exactamente, qué tiene eso de OOP?
Todo esto no ocurre con herencia múltiple, por cierto.

Los traits son *AOP*, no *OOP*.Que PHP está metiendo AOP, OOP, closures, todos los paradigmas posibles...pues si..Y, como ya decía, lleva a la confusión.