всяко лучше чем копипаста кода руками, когда она действительно тупая. т.е. там наприм какой-нибудь утилитарный момент, чтобы не использовать кодогенерацию.
я по молодости в них запихивал проперти с геттерами и сеттерами в доктрине) и мне казалось это дохера удобным, когда у тебя есть трейты типа createdAtTrait, prePersistTrait и т.д., которые я таскал по всем сущностям
или Валентин тупо не договаривает, что для функций-то нету автозагрузки и превозносит их
они в компосер по умолчанию не попадают, надо прописывать рукам. Но... если ты подрубаешь либу, в которой есть функции и в ней уже прописано в компосере, то тебе ничё делать не надо
видела применение когда у некоторых сущностей был один базовый(вроде базовый был), но где то метод получения контактов был нужен, а где то нет. этот метод вытащили в трейт.