Работаю с Symfony в связке с Doctrine. Создавая сущности я часто использую абстрактные классы и трейты. Где их хранить? В той же папке, что и сущности или вынести в отдельную папку (и в какую)?
Посмотрим, какой подход использует Symfony, например, Symfony Serializer.
Используемый несколько раз в разных местах Symfony\Component\Serializer\SerializerAwareTrait находится в корневой директории компонента. А, например, в директории 'Encoder' внутри этого компонента содержатся классы декодеров/энкодеров и одновременно, интерфейсы и абстрактные классы, используемые этими энкодерами/декодерами.
Таким образом, абстрактную конструкцию стоит расположить в пространстве имён, максимально близком к её реализациям.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости