отменял. Но если можно спокойно обойтись без трейта, то почему бы не обойтись?
- Вот у кого-то есть абстрактный класс yii\gii\Generator, наследуемый от FormModel и несущий полсотни public и protected методов и полей, из которых часть - это настройки, часть - поля формы, часть - валидаторы, часть - генератор, часть - запись файлов, часть - системный мусор. Один класс на всё! Почему он такой? Я бы сразу вместо этой inline-кучи сделал по ответственностям отдельные форму/генератор/валидаторы/файловый менеджер... Или взять пример SiteController в https://yiiframework.ru/forum/viewtopic.php?f=34&t=43514&p=217343#p217343
- Да, иногда switch лучше.
- да, это я к вопросы что бы не бояться по 100 раз менять код, если это про нэйминг, про структуру и т.д. ты никогда не сможешь предсказать всего. Прикол в том что бы при этих изменениях трогать поменьше. То есть не количество изменений нас смущает само по себе, а количество нецелевых изменений, где надо поправить что бы все продолжало работать но мы вообще другую штуку правили. - Ну я предлагаю ни то ни другое, не подумай что я за трейты. Но в целом да, если 2-м штукам нужен общий код - вынести в зависимость хороший план. Но можно идти дальше к концепциями типа whole value. - потому что это yii. Синоним "наколенке". Потому что отдельная категория людей понимает "расширяемость" только в терминах extends. Я не хочу рассматривать Yii в какой-либо дискуссии где упоминается рядом декомпозиция. Просто потому что там ее нет и она не поощряется.
Обсуждают сегодня