Задать вопрос
JackShcherbakov
@JackShcherbakov

Где может понадобиться трейт в PHP?

[Я уже прочитал этот вопрос на тостере, но он мне не помог. Так что не надо удалять и жаловаться на вопрос за существование подобного вопрса. Спасибо за понимание.]
Здравствуйте!

Почитал про трейты, однако не понял, где это может пригодиться на практике. Окей, они экономят кол-во кода, но где на практике то это может пригодиться. Сделать наследование и все. Вот и экономия и красота. В каком же случае наследование будет предпочтительнее трейтам?

Почему в этом коде нельзя трейт Cat сделать подклассом от Animal и Tiger сделать подклассом от Cat. Все вполне логично.

Заранее выражаю огромную благодарность всем, кто поможет!
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой 2 комментария
Решение пользователя Anton Mashletov К ответам на вопрос (4)
mashletov
@mashletov
Math.random()
Например, в Laravel есть trait SoftDelete, который добавляет меняет поведение ActiveRecord при удалении — на самом деле, не удаляя, а скрывая запись. Т.е. мы можем в нужных моделях использовать use SoftDelete. Тем самым можем подключать и комбинировать нужный функционал не плодя наследование.
Что-то типа:
class User {
    use SoftDelete, LogAllActions, ReadOnly; // надуманный пример есс-но
}


Плодить ради этого промежуточные классы?
Ответ написан
Комментировать