
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
у меня может быть ограничение, что не просто продукты, а еще какой-нибудь внешний параметр
ну да, согласен

da horsie
06.12.2016
21:39:17

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
то есть наследованию в нем нет места

Aleh
06.12.2016
21:41:09

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
и без наследования намного проще и чище
я вот пытаюсь понять, а когда же нужно применять наследование, и не нахожу ни одного чистого примера, где оно было бы необходимо или хотя бы предпочтительно

Aleh
06.12.2016
21:46:42
инфраструктура диктует свои правила)

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

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
легко

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
примерно как я там сделал

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
ближе к теме, но мата тут не боится никто