Всем доброго дня!
Возник конфликт при инициализации в классе двух трейтов, которые в себе используют еще один и тот же трейт, крашев и фатал эрроров я пока не ловлю (но и полностью еще не тестировал все эти моменты), но IDE ругается на такое использование, и я думаю вполне обоснованно, вот думаю как оптимизировать без глобальной переписи архитектуры проекта.
Детальное объяснение конфликта:
Есть главный класс (родительский), который использует трейт ошибок, есть дочерний класс, наследующий от главного соответственно этот трейт ошибок тоже, и дополнительно использующий свои два трейта (которые внутри себя тоже используют трейт ошибок). При инициализации этих двух трейтов в дочернем классе возникает конфликт:
use OtherFirst, OtherSecond;
IDE пишет - методы трейта ошибок из OtherSecond не будут использоваться в классе, так как уже реализованы в OtherFirst.
P.S. Только по факту наследование от этих двух трейтов (их внутренних трейтов) мне не нужно, так как в родительском классе трейт ошибок уже используется и мне доступен для работы внутри дочерних классов. Вполне вероятно, что я просто усложнил себе жизнь такой архитектурой проекта, но изначально мне казалось я избавлюсь от лишнего и повторяющегося кода (который то и дело проскакивает почти в каждом классе, хотел все минимизировать, разделить по разным файлам классов и трейтов, но вот возникли такие конфликты). Может кто поделится своей идеей и опытом в решении подобных конфликтов и задач.
P.S.2 Мне также уже приходят идеи в голову, вообще трейт ошибок не использовать в других трейтах, но тогда придется писать в каждом трейте один и тот же код для работы с ошибками, а потом инициализировать их уже через главный класс, что не хочется.