[Php-avanzado] Properties, busco feedback, gracias.
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Oct 24 14:55:41 ART 2014
Hola Gabriel,
El vie, 24-10-2014 a las 13:13 -0300, Gabriel Nicolás González Ferreira
escribió:
> http://en.wikipedia.org/wiki/Property_%28programming%29
>
> Hola a todos, hace un tiempo que buscaba un modo de usar properties en
> php pero sin herencia y sin tener que repetir un trozo de código en
> cada archivo,
Bueno... y cómo se supone que tenés código en común en diferentes
Objetos si no es por Herencia o por repetir código en un archivo???
Respecto a las "properties", son solamente una invocación automática a
los getter y setters de un atributo. Desde el punto de: vista del
paradigma POO, no aporta ningún concepto nuevo.
Fijate que los lenguajes de objetos puros no implementan ningún
mecanismo para que esto exista (los atributos son privados y se acceden
mediante setters y getters y punto).
> me encontré con esto pero no se que opinan del uso de Traits en php:
>
> http://blog.std-io.com/2013/11/trait-property-en-php.html
> http://pastebin.com/Yt8Tvi9n
Los traits son un mecanismo relativamente nuevo para implementar una
especia de herencia múltiple parcial: si usás traits, estás heredando, y
es lo que decís que no querés hacer al principio.
Por otra parte, no se conoce ningún problema que para ser solucionado
en la POO requiera herencia múltiple y por esto los lenguajes de Objetos
puros no la implementan.
Cómo es habitual, los lenguajes híbridos implementan cosas que permite
violar el paradigma de la POO, bajo un lema de tinte comercial que viene
a decir "el mercado lo pide" o "los que vienen de otro lenguaje (y hacen
P. Estructurada) les es cómodo usarlo".
PHP también implementa goto
http://ar2.php.net/manual/en/control-structures.goto.php lo que está muy
bien para un lenguaje.
Se conocen desde hace décadas los efectos perjudiciales al código de
usar saltos incondicionales.
Lo que está muy mal es que un programador lo use!
> El ejemplo del muchacho no funciona por poco, así que lo modifiqué, en
> fin adjunto el ejemplo que funciona.
>
> No se si esta forma de usar properties es correcta, espero feedback de
> uds, abrazos a todos.
> Para leer sobre Traits y Sobrecarga:
> http://php.net/manual/es/language.oop5.traits.php
> http://php.net/manual/es/language.oop5.overloading.php
Yo nunca vi a nadie que comprenda y use POO, en mis 20 años en el tema,
quejarse de tener que escribir getters y setters... que son código casi
idéntico que uno escribe en todos las clases. En mi caso, tengo un
generador de código que los escribe por mi, con lo que la tarea está
completamente automatizada.
https://github.com/PegasusTech/ClassGenerator
Pero todo esto es una discusión en el aire: qué problema de diseño
estás queriendo resolver que te hace necesaria la implementación de
properties???
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado