Duplicar posible:
traits in php – any real world examples/best practices?¿Cuáles son los posibles escenarios de uso para Rasgos en PHP?
En qué tipo de situaciones sería uno Rasgos utilizar en PHP? Tengo una idea general bastante buena de esto, pero parece que no puedo pensar en una forma de usarlos en una aplicación que he escrito, pero puede ser porque no necesita rasgos en ese momento.
Un escenario me he dado cuenta de que hay rasgos:
- Eventos. En lugar de tener una clase que implemente el patrón de observador y dejar que todas las demás clases lo hereden, simplemente conviértalo en un rasgo y deja que las clases que quieran disparar eventos o se suscriban utilicen el rasgo. Por ejemplo, el marco Yii lo está haciendo mal implementando cosas en la clase CComponent en lugar de usar un Rasgo.
Básicamente, la funcionalidad que puede compartirse entre clases, pero que puede extenderse a lo largo de jerarquías de clases múltiples, debe usar rasgos. ¿Qué otros escenarios podrían aprovechar los Rasgos que un sistema de eventos?
PHP también tiene [interfaces] (http://php.net /manual/en/language.oop5.interfaces.php), ¡por separado de los rasgos ...! Si desea comparar manzanas con manzanas, los rasgos son como mixins de idiomas como Ruby o, bueno, rasgos de idiomas como Self. – deceze
No creo que las interfaces tengan mucho que ver con los rasgos. – Tower
Voy a dejar esto aquí http://compsci.ca/v3/viewtopic.php?t=14785 –