
Sergey
20.08.2017
15:49:06

Антон
21.08.2017
07:51:27
удалил все таблицы, пытаюсь запустить миграции и вылезает ошибка
[Doctrine\DBAL\Schema\SchemaException]
The table with name 'react.category_product' already exists.
хотя таблиц в бд вообще нет

Valeriy
21.08.2017
07:52:34
соответственно гдето две миграциис созданием схемы?

Google

Антон
21.08.2017
07:53:05
папку миграций я тоже почистил

Denis
21.08.2017
07:53:23
console cache:clear пробовал?

Антон
21.08.2017
07:53:52
bin/console cache:clear --no-warmup

Valeriy
21.08.2017
07:54:37
энвайронмент не забывай указать

Антон
21.08.2017
07:57:11
http://imgur.com/a/CC3sZ

Sergey
21.08.2017
07:58:08
у тебя падает на migration diff?)

Антон
21.08.2017
07:58:25
угу
я мигрировал первый раз и понял что ошибся в анотациях, и 2 пивотные таблицы создал: product_category, category_product. Потом удалил используй сиквелПро таблицы
и все. больше не работает

Sergey
21.08.2017
08:00:14
подобные ошибки для diff не свойственны, это только если у тебя осталась какая-то инфа в кэше о структуре базы (кэш доктрины), но тут хз. Проверяй по пунктам что и как ты делаешь. Коллизии имен таблиц и все такое

Denis
21.08.2017
08:00:14
а в базе таблиц нету?

Sergey
21.08.2017
08:01:00
просто diff вообще не должен ругаься на то что что-то уже есть в базе
он же diff, он сравнивает мэппинг и текущную структуру

Google

Sergey
21.08.2017
08:01:15
так что возможно проблема с мэппингом

Антон
21.08.2017
08:01:25
хм

Sergey
21.08.2017
08:01:26
не помню как называется команда для валидации мэппинга

Denis
21.08.2017
08:01:28
пробуй удалить весь app/cache
вручную

Антон
21.08.2017
08:03:16
bin/console doctrine:schema:validate ругается
щас найду ошибку
в общем проблема была в аннотации.
Решил сделать many-to-many и в двух сущностях указал анотацию
https://paste.laravel.io/PyxXG
ну соответсвенно сменив значения. так понял это не корректно?

Sergey
21.08.2017
08:24:28
ну сам подумай)
у тебя там одинаковая связь вышла с обеих сторон и они типа с другой стороны такие же
это не так работает)

Антон
21.08.2017
08:26:22
не может быть двухсторонней равнозначной связи?

Sergey
21.08.2017
08:27:04
что по твоему означают mappedBy и inversedBy?

Антон
21.08.2017
08:34:15
inversedBy указывается для главной модели

Sergey
21.08.2017
08:34:48
не совсем
вообще старайся по возможности вообще не делать двусторонних связей
и разберись по документации как это работет

Taras
21.08.2017
11:28:34
Блин, в убой не понимаю DDD... О_о

Sergey
21.08.2017
11:28:59
книжек почитай

Google

Taras
21.08.2017
11:29:17
пытаюсь... но как доходит до реализации - хавайся
ща вот снова буду пытаться... нарыл книжку 2017 года DDD in PHP
https://www.amazon.de/Domain-Driven-Design-PHP-Carlos-Buenosvinos/dp/1787284948/ref=sr_1_fkmr0_3?ie=UTF8&qid=1503314999&sr=8-3-fkmr0&keywords=DDD+in+PHP

Sergey
21.08.2017
11:32:30
лучше красную и синюю сразу почитать

Taras
21.08.2017
12:00:54
синюю знаю, а что за красная? )

Sergey
21.08.2017
12:01:43
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/ref=sr_1_3?ie=UTF8&qid=1503316879&sr=8-3&keywords=domain+driven+design

Taras
21.08.2017
12:02:03
О! пасиб... не видел ее
хм... это ведь она же?
https://www.amazon.de/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1503317009&sr=1-1&keywords=domain+driven+design+distilled
только типа более новая?

Sergey
21.08.2017
12:04:24
не, другая. не читал ее еще

Taras
21.08.2017
12:04:55
ой, не, сорри

Ruslan
21.08.2017
13:37:28
Для первоначального обзора можно прочесть https://www.infoq.com/minibooks/domain-driven-design-quickly

Yuriy
21.08.2017
14:06:32
добрый день, подскажите пожалуйста какие рабочие бандлы есть для работы (парсинг/генерация) Excel, обязательно оба формата (.xls, .xlsx) ?

Alexander
21.08.2017
15:46:39
зачем бандлы? https://github.com/PHPOffice/PHPExcel

Andrew
21.08.2017
16:10:59


Sergey
21.08.2017
18:20:49
Блин, в убой не понимаю DDD... О_о
- есть бизнес и его виденье мира
- есть разработчики которые выражают бизнес процессы в коде
- есть проблема перевода требований из языка бизнеса в код, потому что модель бизнес процессов часто засоряется инфраструктурной фигней
- "проблема перевода" приводит к тому что спустя время сложно понять как работает модель, сложно убедиться что модель все еще соответствует бизнес процессам
- идея DDD в том что бы формировать единый язык и выражать все идеи бизнеса в коде максимально придерживаясь этого единого языка. В идеале ты можешь взять код, посадить рядом нового разработчика и доменного эксперта и спросить по коду у оного что это такое.
- упор на именование, формирование правильных отрошений, глоссарий, и как следствие попытка полностью изолировать модель от инфраструктуры.
короч DDD это когда ты можешь прочитать бизнесу код как прозу и он все поймет
что бы технические ограничения можно было объяснять бизнесу их языком, типа "мы же не можем добавлять инвентарь туда-то потому-что то-то-то-то"
это нужно для оптимизации коммуникаций и передачи знаний, очень важно на больших и сложных проектах.
ну и еще неплохо работает в купе с BDD на проектах где предметная область все еще формируется

Google

Sergey
21.08.2017
18:25:48
не работает если разработчикам класть и абы в контроллерах логику пописать

Taras
21.08.2017
18:29:08
Сережа, спасибо за пояснение, но вот я как раз пытаюсь у себя из головы выбить эти самые контроллеры. Черт возьми, к кому-то бы в подмастерья пойти поучиться бы...

Sergey
21.08.2017
18:35:24
представь что их нет
или сделай в коде так что бы так казалось)
ну и еще - а ты уверен что оно тебе надо?

Антон
21.08.2017
20:08:22
самое сложное в DDD понять сам этот свод правил. столько сложно понятных терминов и правил.
видимо все дело в том что рускоязычные термины не нативны для нас.

Admin
ERROR: S client not available

Антон
21.08.2017
20:09:41
хотя в вики более менее переведено.
Сводный корень - аггрегат?

Sergey
21.08.2017
20:37:27
не знаю зачем тебе изучать переведенные термины

Антон
21.08.2017
20:38:00
ну так хз зачем это в вики написали

Valentin
21.08.2017
21:16:20
В русском сегменте википедии многие считают долгом писать статьи максимально сложным языком, чтобы случайный читатель, не окончивший мехмат МГУ, не дай бог не разобрался в теме

Sergey
21.08.2017
21:18:24

Alexey
22.08.2017
05:36:27

Boris
22.08.2017
08:13:12
так может ну его нафиг тогда ))
и без него отлично можно жить

Антон
22.08.2017
08:15:18
я для себя из DDD взять именование переменных, методов

Google

Антон
22.08.2017
08:15:25
согласно бизнесу называю все

Boris
22.08.2017
08:48:26
ну тут главное не увлекаться а то переменные по 20-30 символов это тоже дичь

Max
22.08.2017
09:26:51
и без него отлично можно жить
можно и на wp все писать и не париться ... а вообще тема DDD очень обобщающая, ибо включает себя и аналитические и архитектурные паттерны, рефакторинги и переработку требований, тестирование (написание утверждений) и тп ... никто не заставляет использовать все практики и это не всегда имеет смысл
вот я читал статейки - мы с DDD заюзали все, а потом дорого, сложно и не работает
вообще основная идея это - решение какой-то бизнес проблемы

Sergey
22.08.2017
09:27:46
>а потом дорого, сложно и не работает

Max
22.08.2017
09:31:06
а чтобы решать бизнес проблему - нужна модель бизнеса (Domain), те должна воспроизводить все бизнес процессы
и все единые языки, анализы предметной области это сюда
и нужно это для борьбы со сложностью - так как брейнфак предметных областей стремится к бесконечности
а чем меньше сложность тем дешевле система
кароч, не обязательно захломлять свой код сервисами, командами, репозиториями и тп ибо это в ДДД... можно спокойно иметь минимальную модель, которая описывает предметную область, с использованием той же Active Record, без сервисов и вызовом aggregate root в контроллерах
порой достаточно просто перенести модель бизнес в диаграмму классов и прокинуть к ней вызовы
типо code first подход
а потом, если инфтраструктура начинает очень сильно влиять на домен, то уже начинать думать, о декомпозиции и разделении

Boris
22.08.2017
09:51:00

Max
22.08.2017
10:03:13

Boris
22.08.2017
10:03:34
все зависит от кол-ва бабла и времени)

Антон
22.08.2017
11:02:18
>кароч, не обязательно захломлять свой код сервисами, командами, репозиториями и тп ибо это в ДДД... можно спокойно иметь минимальную модель, которая описывает предметную область, с использованием той же Active Record, без сервисов и вызовом aggregate root в контроллерах
+1 иногда это нафиг ненадо. и меня удивляют люди которые готовы башку об стену разбить утверждая что AR это антипаттерн. Блин оно работает и решает проблемы бизнеса

Boris
22.08.2017
11:11:17
ну оно работает это не аргумент) когда-то мы писали свои велосипеды без мвц и фремворков и оно тоже работало и решало бизнес задачи)

Антон
22.08.2017
11:41:45
а что аргумент?