leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Este artigo faz parte de uma série de outros arquivos sobre as novidades do PHP 5.4.

Documentação oficial: http://php.net/traits

Traits são mecanismos que ajudam (e muito) a reutilização de código, e servem perfeitamente para resolver o problema da falta de herança múltipla.

Suponhamos que você tenha duas ou mais classes que precisam usar um método/comportamento em comum, antes da versão 5.4 você faria algo do tipo:

Primeiro temos nossa classe Log, que serviria pra salvar mensagens de log (imagine uma classe completa, que faça algo de útil):

E agora você tem outras classes que fazem uso dessa funcionalidade (salvar logs), mas essas classes não podem (e nem deveriam) estender Log, então você faria algo do tipo:

Mais uma vez, o conteúdo ou métodos dessas classes não importa.. o que importa aqui é o trabalho que temos para poder usar o Log::log() para salvar mensagens de log.

Já na versão 5.4, podemos transformar a classe Log numa Trait:

E manter o comportamento das nossas classes, de forma bem mais simples:

Podemos usar o método log() diretamente (sem a necessidade de instanciar um objeto de Log) pois nossas classes adquiriram as características (métodos e atributos) de Log! :)

Conclusão

Traits são de fato recursos bem interessantes e muitos frameworks estão se adaptando à esse poderoso recurso.

Espero que você tenha gostado (e faça um bom uso) desse novo recurso! :)

Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo