LINUX.ORG.RU

История изменений

Исправление ilinsky, (текущая версия) :

Трейты тут вообще не при делах. Трейт вообще не должен отвечать за логику или поведение приложения. Понимаешь почему?

Трейты должны служить тем классам, у которых гарантировано при инстансе происходит обращения ко всем методам этих самых трейтов. Но в реальности, особенно благодаря всякому говну вроде Laravel (который пихает это везде где только можно и нельзя), в трейты начинают пихать все что не поддается осмыслению.

Ну и конечно, самое главное - как это все тестировать? Создавать мок класс и заюзать трейт? Значит трейт должен быть публичным - верно? Но ведь ты понимаешь что это значит? А значит у тебя в классе который использует трейт есть публичные методы которые имеют логику (хорошо если это не так) или ее часть или что угодно еще.

Исправление ilinsky, :

Трейты тут вообще не при делах. Трейт вообще не должен отвечать за логику или поведение приложения. Понимаешь почему?

Трейты должны служить тем классам, у которых гарантировано при инстансе происходит обращения ко всем методам этих самых трейтов. Но в реальности, особенно благодаря всякому говну вроде Laravel (который пихает это везде где только можно и нельзя), в трейты начинают пихать все что не поддается осмыслению.

Ну и конечно, самое главное - как это все тестировать? Создавать мок класс и заюзать трейт? Значит трейт должен быть публичным - верно? Но ведь ты понимаешь что это значит? А значит у тебя в классе который использует трейт есть публичные методы которые имеют логику или (хорошо если это не так)ил ее часть или что угодно еще.

Исходная версия ilinsky, :

Трейты тут вообще не при делах. Трейт вообще не должен отвечать за логику или поведение приложения. Понимаешь почему?

Трейты должны служить тем классам, у которых гарантировано при инстансе происходит обращения ко всем методам этих самых трейтов. Но в реальности, особенно благодаря всякому говну вроде Laravel (который пихает это везде где только можно и нельзя), в трейты начинают пихать все что только можно.

Ну и конечно, самое главное - как это все тестировать? Создавать мок класс и заюзать трейт? Значит трейт должен быть публичным - верно? Но ведь ты понимаешь что это значит? А значит у тебя в классе который использует трейт есть публичные методы которые имеют логику (хорошо если это не так).