Size: a a a

2020 August 07

ДЩ

Дмитрий Щербаков... in phpGeeks
Victooor
Ну значит классы делает нечто похожее. Значит это похожее можно выделить в отдельный класс, потому что это уже что-то другое, не относящееся к тем двум
Или в трейты чтобы просто подключить и юзать сразу через this
источник

V

Victooor in phpGeeks
Дмитрий Щербаков
Или в трейты чтобы просто подключить и юзать сразу через this
"потому что это уже что-то другое, не относящееся к тем двум"
источник

A_

Alex _ in phpGeeks
мне както в нескольких не связанных классах понадобился 1 общий метод, подключил трейт, все круто, проблем не было и не будет
источник

V

Victooor in phpGeeks
Пример короче в студию, где по твоему прям нужны трейты
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Victooor
Пример короче в студию, где по твоему прям нужны трейты
С телефона, напишу словами

Есть у меня два класса оба делают хмл, в обоих надо среди прочего информацию по договору

Есть трейт который эту инфу собирает и у него метод гетконтракт

Просто подключаю трейт в обоих классах и использую вис гетконтракт

У-удобно не надо экземпляр класса тащить через di в свойство его пихать конструктор иметь
источник

SF

Stepan Franchuk in phpGeeks
Дмитрий Щербаков
С телефона, напишу словами

Есть у меня два класса оба делают хмл, в обоих надо среди прочего информацию по договору

Есть трейт который эту инфу собирает и у него метод гетконтракт

Просто подключаю трейт в обоих классах и использую вис гетконтракт

У-удобно не надо экземпляр класса тащить через di в свойство его пихать конструктор иметь
Почитайте для чего трейты сделаны и не делайте так как написали)
источник

A_

Alex _ in phpGeeks
Stepan Franchuk
Почитайте для чего трейты сделаны и не делайте так как написали)
почему?
источник

A_

Alex _ in phpGeeks
я сделал по факту тоже самое
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Stepan Franchuk
Почитайте для чего трейты сделаны и не делайте так как написали)
Плиз можно в кратце?
источник

A_

Alex _ in phpGeeks
Какие проблемы при этом подходе ожидают?
источник

V

Victooor in phpGeeks
1) неудобно тестировать. Вместо подачи фейкового контракта придётся мокать это дело. 2) Т.е. в одном классе мы генерируем хмл и тудаже тащим методы репозитория (условно) для поиска контракта? Ну блин 🙂
источник

A_

Alex _ in phpGeeks
Victooor
1) неудобно тестировать. Вместо подачи фейкового контракта придётся мокать это дело. 2) Т.е. в одном классе мы генерируем хмл и тудаже тащим методы репозитория (условно) для поиска контракта? Ну блин 🙂
а если в проекте не используется тестирование и не будет использоваться?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Victooor
1) неудобно тестировать. Вместо подачи фейкового контракта придётся мокать это дело. 2) Т.е. в одном классе мы генерируем хмл и тудаже тащим методы репозитория (условно) для поиска контракта? Ну блин 🙂
Хммм
источник

V

Victooor in phpGeeks
Alex _
а если в проекте не используется тестирование и не будет использоваться?
удобство тестирование почти автоматически означает слабую зависимость от других классов, а значит простую модульную архитектуру, в которой нет лапшекода
источник

V

Victooor in phpGeeks
всё просто. все эти солиды и граспы придуманы не для усложнения простого кода, а для упрощения сложного. Если у вас три класса в проекте, ради бога, трейты шмейты. Но если проект большой, вы там просто закопаетесь )
источник

A_

Alex _ in phpGeeks
Victooor
удобство тестирование почти автоматически означает слабую зависимость от других классов, а значит простую модульную архитектуру, в которой нет лапшекода
как бы ты решил в кейсе Дмитрия проблему?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Victooor
удобство тестирование почти автоматически означает слабую зависимость от других классов, а значит простую модульную архитектуру, в которой нет лапшекода
Когда проект небольшой и клиент не овер богатый и программист всего один, все это красиво но ведёт к х2 цене проекта и потере клиента
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Alex _
как бы ты решил в кейсе Дмитрия проблему?
Выкинул трейт и сделал класс )
источник

A_

Alex _ in phpGeeks
создать интерфейс от него имплементиться и для тестов писать отдельный класс который реализует тот же интерфейс что бы подставить фейковый контракт?
источник

V

Victooor in phpGeeks
Alex _
как бы ты решил в кейсе Дмитрия проблему?
я бы импортировал в di контракт, и внутри дёрнул метод getContractNumber или для чего он там нужен. Или даже сразу этот номер в конструктор передал. И тогда классу вообще пофиг куда и как этот метод сходил что бы получить эти данные
источник