Traits vs Interfaces em PHP: quando usar cada um?
Olá a todos! Sou um desenvolvedor PHP iniciante e estou constantemente confuso sobre quando usar traits e quando usar interfaces. Parece que ambos ajudam a reutilizar código, mas sinto que são coisas diferentes.\n\nAqui vai um exemplo concreto. Tenho uma classe `Car` e uma classe `Bicycle`. Ambas podem se mover, então criei uma interface `MovableInterface` com o método `move()`. Isso funciona, mas em cada classe preciso escrever minha própria implementação do método `move()`.\n\nDepois descobri os traits. Criei um trait `EngineTrait` com o método `startEngine()`. Agora posso conectá-lo à classe `Car`, mas não à `Bicycle`, porque uma bicicleta não tem motor. E então pensei: não seria melhor ter feito `startEngine()` como método de interface? Mas nesse caso teria que implementá-lo também em `Bicycle`, onde ele não é necessário.