Юра
И ключ на 19-21
Забыл ещё штуку которой фиксится половина всего - скотч
Павел
Михаил
Вы ещё про мусорный контейнер забыли. Фиксит 100% сломанного
Михаил
Михаил
Не всмысле с мужчинами спать, а про минимализм
Konstantin
Господа, проблема, помогите, если кто сталкивался
Есть три entity, но мне нужно чтоб они смотрели на одну таблицу
User\Entity\User
Admin\Entity\User
Post\Entity\User
У меня есть аттрибут ORM\Table(name = 'users')
При создании миграции мне пишет The table with name "users" already exists.
Никто не подскажет, как сконфишить доктрину?
Ivan
extends BaseUser?))
Konstantin
Пробовал
Konstantin
При наследовании он вообще не видит аттрибуты которые у меня в BaseUser, и пытается создать таблицу user, где тоже сыпиться с ошибкой
Сергей
Оно?
https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/inheritance-mapping.html#class-table-inheritance
Konstantin
В таком кейсе он будет создавать для каждой сущности свою таблицу, то есть, ничего не поменяется, в примере там
class Employee extends Person - создаст employee
Konstantin
Проверил еще раз, ругается на дубликаты
Konstantin
Что то мне кажется, это невозможно(
Иван
Юра
Это скорее что-то больше похоже на вьюхи
Юра
Но вроде доктрина так не умеет
Konstantin
Konstantin
Все, разобрался, большое спасибо всем!
Вот тут ошибка возникала из за того, что кроме id, у меня была еще одна колонка с флагом unique, и ее то я забыл перенести в SuperUser, из за чего и была ошибка. Низкий поклон
Иван
чота выглядит странно
юзер юзер не аутх юзер, а админ не юзер?
Иван
роли не назначаются?
Konstantin
Да я просто тут DDD изучаю, пытаюсь дробить все на контексты
И получается, что меня юзер одновременно существует в трех контекстах
Да, дискридитация не помогает, она дробит прям в бд пользователей по типу, и использует потом флаг для выборки при каком то запросе
Konstantin
Видимо придется сделать Shared)
Сергей
Лучше юзеров и админов разделить полностью. И не юзать в этом случае никаких дискриминаторов.
В подавляющем большинстве случаев у админов и пользователей не будет ничего общего
Иван
Иван
дискриминатор - это когда сущности в одном списке потом
Сергей
Тем более речь про ограниченные контексты.
А тут мухи с котлетами плотно сцеплены получаются
Юра
Юра
Т.е. если не будешь напрямую использовать орм слой, создавай хоть десять разных юзеров в каждом контексте
Юра
А вообще возможно это у тебя проблема одной большой модели
Юра
Сделай юзер как грубо говоря айди модель, с минимумом полей, а остальные через OneToOne и сможешь в каждом контексте создавать дополнительные энтити типо UserInfo, UserContacts, UserRegistration, UserDevice и т.д.
Павел
Иван
Михаил
Я думаю что проблема решается чисто интерфейсами.
Каждый контекст декларирует свой энтити интерфейс и репозитори интерфейс. А уже классы User и UserRepository имплементируют эти интерфейсы и всё работает нормально.
Михаил
Можно ещё вообще не завязываться на доктрину, забыл как паттерн называется, ща гляну.
Короче у тебя есть юзкейс. Внутри него идёт цикл
1) получить/создать сущность
2) вызвать доменные методы
Как понять что поменялось в сущности без UnitOfWork? А просто когда вызываешь доменные методы внутри сущности создавай доменный ивент. Когда подходишь к концу юзкейса - запроси все доменные ивенты у сущностей и уже на их основе производи сохранения
Михаил
Но это овер. Как по мне doctrine лучший способ. Просто работай не с конкретной реализацией, а с интерфейсами
Иван
Михаил
так юзкейс на то и юзкейс, что ты точно знаешь, что тут меняется
Никак нет. Я точно знаю кто участники и какие действия совершаются.
Про то что что-то меняться будет - мне до лапочки.
Юзкейс как накормить Ивана Лещёва:
1) Взять Ивана Лещёва
2) Спросить у Ивана его предпочтения
3) На основе предпочтений запросить приготовить еду.
4) Попросить Ивана съесть эту еду.
То КАК будет готовиться еда, и куда она там проваливается внутри Ивана - юзкейсу абсолютно всё равно
Михаил
The Ant
Ваша проблема в том, что вы пытаетесь решить проблему, которую создает автоматическая миграция 😄
Из-за нее начинаете выдумывать всякое.
Vite4eg
Всем привет. Чем вы ротируете логи? Монологом или линуксовыми утилитами?
The Ant
Vite4eg
А почему эластик нет? Слишком замудрёный?
The Ant
Жрет памяти много
kakoi-to-noob
https://github.com/doctrine/orm/releases/tag/3.0.0
Юра
Михаил
Михаил
Кто-то уже пробовал обновиться? BCH очень много, страшно
Михаил
Kirill
там вроде yaml конфиги выпилили, так что пока жду пакет чтоб их вернуть
Kirill
там офигенная аргументация была, кстати, типа "yaml не валидируется") А то что json схема и валидирует и автокомплитит, и подсказывает json, json5, neon, yaml, php и кучу других форматов — "это другое"
Михаил
На самом деле не понимаю зачем симфе (почему так исторически сложилось) 3 формата конфигурирования.
Ямал, xml, php. Почему просто на php не остановились. Да, он не такой декларативный. Зато не надо было всякие when@dev, языки выражений изобретать, fqcn (особенно когда константу пытаешься получить)
Ну и то что это не код, надо отдельное расширение ставить чтоб переходить к месту декларирования, или из кода понять что этот класс используется чисто в конфиге и не надо помечать его как неиспользуемый.
А ну и «я понял что накосячил в конфиге только во время компиляции» Не для этого я из c++ уходил.
Юра
PHP не очень удобно анализировать всякими тулзами, например той же ide
Юра
Неудобно модифицировать
Null
Ямал в целом огонь.
Тот же flex модифицирует их инкрементно
Михаил
Ч.Т.О.?
PhpStorm не удобно анализировать php?
И при чём тут анализ и модификация? 99% времени Я анализирую и модифицирую конфиг. И во время этого 1%, когда я обновляю пакет, можно просто кинуть эксепшон что что-то неправильно настроено, я сам поправлю
Александр
Vlad
Михаил
Очень врядли они сделают полный переход. Очень много легоси.
Vlad
В целом никто не мешает юзать пых конфиги сейчас)
Vlad
Юра
Интересно насколько пых конфиги ускоряют. У нас огромный проект там куча бандлов, долго кеш конечно чистится
Юра
Если бы был пхп коныиг ускорило бы или нет
Vlad
Так конфиги тоже билдится))
Александр
Вряд ли парсинг yaml сильно грузит....
Vlad
Если говорим про dsl, а не массивчики
Vlad
The Ant
The Ant
Там в сообщении про чистится
Михаил
Ну блин, ты же понял
Михаил
bin/console ca:cl
Михаил
эта команда включает в себя момент вармапа
Михаил
что перекомпилирует кеши. И это самый долгий момент.