@oop_ru

Страница 14 из 785
Sergey
06.12.2016
21:33:30
и цепочка связанности прервана

наша бизнес логика ничего не будет знать о EntityRepository

Aleh
06.12.2016
21:33:47
ну опять же, если EntityRepository абстрактный, то у тебя все равно всплывет его наследник)

Sergey
06.12.2016
21:33:57
он не абстрактный

Google
Aleh
06.12.2016
21:34:00
так она итак не будет знать же?

Sergey
06.12.2016
21:34:02
он просто базовый

для всех доктриновских сущностей

Aleh
06.12.2016
21:34:09
это не тебе решать

Sergey
06.12.2016
21:34:13
мне)

Aleh
06.12.2016
21:34:17
а разработчику доктрины)

Sergey
06.12.2016
21:34:23
ну так он и решил)

Aleh
06.12.2016
21:34:37
замени доктрину, на другую ебанутую библиотеку

в которой решили иначе)

Sergey
06.12.2016
21:35:02
dependency inversion

и все будет хорошо

Aleh
06.12.2016
21:35:05
твоя БЛ все равно о нем не узнает

в том плане, что этот адаптер все равно где-то будет жить

Google
Sergey
06.12.2016
21:36:30
какая разница?

Aleh
06.12.2016
21:36:42
если он используется где-то еще, то его есть смысл выделить от реализации интерфейса

потому что используется в двух реализациях

Sergey
06.12.2016
21:36:57
унаследовавшись от EntityRepository ты легко можешь нарушить LSP

Aleh
06.12.2016
21:36:58
если у тебя нет, то нет)

мм

типа если мои методы, будут ломать методы из ER?

ну вообще да

Sergey
06.12.2016
21:37:42
типа твои методы могут налагать больше ограничений, чем методы ER

Aleh
06.12.2016
21:37:51
ну или вообще другой интерфейс

да, логично

Sergey
06.12.2016
21:37:57
тип в ER у тебя "сохраню любую херню"

а ты такой "э не, только продукты"

Aleh
06.12.2016
21:38:16
у меня может быть ограничение, что не просто продукты, а еще какой-нибудь внешний параметр

ну да, согласен

Aleh
06.12.2016
21:39:18
я просто оставлял адаптерам единственное место, где наследование можно оправдать)

ну тут да, стоит их вывести в еще меньшее

da horsie
06.12.2016
21:40:39
@fes0r @mkusher спасибо, чуваки, хорошую дискуссию организовали)

Sergey
06.12.2016
21:40:42
адаптер подразумевает что у тебя есть один интерфейс и ты делаешь другой

Google
Sergey
06.12.2016
21:40:46
то есть наследованию в нем нет места

Rodion
06.12.2016
21:41:20
Следил как за сериалом

Aleh
06.12.2016
21:41:40
Следил как за сериалом
тут интерактив, все могут участвовать)

Rodion
06.12.2016
21:44:22
Не, отнаследовав по инерции студента и учителя от человека я просто решил наблюдать

Aleh
06.12.2016
21:45:15
@fes0r надо еще придумать хорошую задачку на полиморфизм

чтобы что-то очевидное давалось как if instanceof

Артур Евгеньевич
06.12.2016
21:45:34
Квадрат и прямоугольник)

Aleh
06.12.2016
21:45:53
да просто два независимых класса, хватит уже их мучать)

Rodion
06.12.2016
21:45:55
Нормальный разбор принципа "композиция предпочтительнее наследования"

da horsie
06.12.2016
21:46:28
и без наследования намного проще и чище
я вот пытаюсь понять, а когда же нужно применять наследование, и не нахожу ни одного чистого примера, где оно было бы необходимо или хотя бы предпочтительно

Sergey
06.12.2016
21:47:19
ну вот с элоквентом хороший пример

там выбора реально нет

и без него реально сложно

ну точнее... реализация элоквента была бы раза так в полтора сложнее

da horsie
06.12.2016
21:47:56
ну понятно

Google
Sergey
06.12.2016
21:48:00
тупо что бы дать возможность "не наследоваться"

da horsie
06.12.2016
21:48:09
когда все в неестественных позах, а в жопе кол

Sergey
06.12.2016
21:48:17
а если ты своих штуки делаешь - там наследование не нужно

опять же, я тоже не могу вспомнить ни одного случая когда "ну вот надо"

я же скидывал статью "Why extends is evil?"

Aleh
06.12.2016
21:48:59
опять же, я тоже не могу вспомнить ни одного случая когда "ну вот надо"
утром демо, а тут костылем все решается на раз два

da horsie
06.12.2016
21:48:59
я пропустил

Rodion
06.12.2016
21:49:06
Скинь ещё раз пжст

da horsie
06.12.2016
21:49:18
я же скидывал статью "Why extends is evil?"
добавь ее сюда лучше https://gist.github.com/f3ath/0c32c850776014f0b84c02bcb1296679

Aleh
06.12.2016
21:50:09
@f3ath а тыт creator чатика?

da horsie
06.12.2016
21:50:14
да

Aleh
06.12.2016
21:50:35
ага

давай crosslink замутим с prophp и symfony?

Sergey
06.12.2016
21:51:31
можно

da horsie
06.12.2016
21:51:46
давай crosslink замутим с prophp и symfony?
да лего, открывай пулреквест

легко

Aleh
06.12.2016
21:52:01
я про телеговские дескрипшины)

а в гистах ж нельзя слать PR

da horsie
06.12.2016
21:52:16
нельзя?

Aleh
06.12.2016
21:52:22
только форкать)

Google
da horsie
06.12.2016
21:53:16
блиииииин

вот дерьмото

Sergey
06.12.2016
21:54:23
<?php namespace App\Service\Doctrine; use Doctrine\ORM\EntityRepository; final class GenericRepository extends EntityRepository { public function add($object) { $this->_em->persist($object); } public function remove($object) { $this->_em->remove($object); } }

урра

я решил свою проблему

da horsie
06.12.2016
21:54:43
я сделаю обычную репу из гиста

тока чуть позже

Aleh
06.12.2016
21:55:03
я сделаю обычную репу из гиста
короче, закинь в дескрипшн чата @prophp7

примерно как я там сделал

da horsie
06.12.2016
21:55:28
сделаю

я с веба, тут очень неудобно это делать

Aleh
06.12.2016
21:56:01
окей)

Dmitriy
06.12.2016
21:56:09
народ пошел

Fayozjon [CybernatiC]
06.12.2016
21:56:17
Тут же можно нормально разговаривать матом?

da horsie
06.12.2016
21:56:22
не надо много людей сюда

Fayozjon [CybernatiC]
06.12.2016
21:56:34
Если это группа как иос пидоров я ливну

Aleh
06.12.2016
21:56:38
ну не надо как в пхпгикс

Fayozjon [CybernatiC]
06.12.2016
21:56:48
Меня там нет

Aleh
06.12.2016
21:56:51
ближе к теме, но мата тут не боится никто

Страница 14 из 785