@symfony_php

Страница 757 из 1418
Sergey
18.03.2018
19:03:05
повторюсь

$im = $em->getUnitOFWork()->getIdentityMap(); $numberOfEntities = array_reduce($im, function ($result, $entities) { return $result + count($entities); }, 0);

вот это попробуй перед clear сделать

и вывести количество сущностей которые находятся у тебя в UoW

Google
Sergey
18.03.2018
19:04:44
+ определенный оверхэд может быть от того что у тебя сложная гидрация (если есть to-many связи)

Alexandr
18.03.2018
19:06:28
numberOfEntities - 393

Sergey
18.03.2018
19:07:30
добавить к этому 100 новых сущностей.

(или не надо? я не помню ложатся ли новые сущности в IM или нет.... блин... надо чекнуть)

Alexandr
18.03.2018
19:28:52
Ребят в поисках я попробовал чистить(Откреплять?) созданные объекты и у меня вместо 40 секунд стал 6

То есть, я до записи, начал выполнять $this->em->clear($news->getNewsBad())

получается, что до этого сохранялась/обновлялась вся связь?

Alexandr
18.03.2018
19:30:12
божечки....

но у меня всё равно есть явные проблемы, то есть даже теже 100 строчек долго идут

Vladislav
18.03.2018
19:34:27
Почитай доку докрины

Alexandr
18.03.2018
19:35:44
читаю, пробую. Спасибо вам большое

Arky
18.03.2018
20:16:00
немного обновили доку что бы чуть соответстовало best practice (текст, не код)
Using the Product class is pretty standard OOP. The interesting bits are the use of the EntityManager service. To notify the EntityManager that a new entity should be inserted into the database, you have to call persist(). To initiate a transaction to actually perform the insertion, you have to explicitly call flush() on the EntityManager. Нет персиста только на апдейтах, значит я все верно понял)0

Google
Sergey
18.03.2018
20:16:49
но это можно отключить (пока-что можно))

Sergey
18.03.2018
20:18:15
да, потому что это просто какой-то объект о котором доктрина ничего не знает

для того что бы эффективно все это юзать важно разграничивать транзакцию в базе и бизнес транзакцию, то есть некую операцию.

ну то есть все чуть сложнее чем с какой-нибудь active record где тебе предложено работать напрямую с рядами в базе

но и возможностей это дает намного больше, если ты понимаешь все это....

проблема в том что большинство юзают доктрину "для работы с рядами в базе"....

то есть если взять сложность инструмента, те возможности которые этот инструмент дает, сравнить с альтернативами.... может тогда хоть станет понятно почему у меня бомбит от того как люди доктрину юзают....

это как юзать кухонный камбайн только ради того что бы смешивать себе милкшейк.

Arky
18.03.2018
20:23:47
это как юзать кухонный камбайн только ради того что бы смешивать себе милкшейк.
Тоесть она слишком "тяжелая" чтобы ее простенько юзать?)

Ну она довольна удобна, чем остальные орм)0

Была бы ар версия)0

Sergey
18.03.2018
20:26:08
а сколько у тебя опыта использования других ORM?)

Arky
18.03.2018
20:26:15
но это вроде первая

f4rt~
18.03.2018
20:26:24
прелесть доктрины как раз таки в DM

в разделение SRP на персист и flush

Arky
18.03.2018
20:26:35
Sergey
18.03.2018
20:26:40
Ну она довольна удобна, чем остальные орм)0
ну я про то что на основании чего ты такие выводы делаешь?)

в разделение SRP на персист и flush
это одна и та же зона ответственности

Google
Sergey
18.03.2018
20:27:20
соль в persistence ignorance (хоть и не полном, вспомним one-to-many однонаправленные)

f4rt~
18.03.2018
20:27:23
это одна и та же зона ответственности
я имею в виду, она не имеет недостатка аля AR-like

f4rt~
18.03.2018
20:27:40
безусловно

Sergey
18.03.2018
20:27:53
важно просто понимать что ниши у этих инструментов пересекаются лишь немного

например я уверен что юзать в одном проекте и доктрину и какой-нибудь легковесный AR более чем нормально

AR там где нет логики и нужен круд, а так же на чтение, а доктрина там где есть логика (в основном на запись)

f4rt~
18.03.2018
20:28:57
гг CQRS :D

Sergey
18.03.2018
20:28:58
можно к слову ORM-компаньена для доктрины запилить)

Sergey
18.03.2018
20:29:17
@fes0r у вас же TypeScript?

Sergey
18.03.2018
20:29:26
ну мол... информация о схеме есть.... сделать простой AR на основании этой информации не составит особо труда, будет жрать DQL...

Sergey
18.03.2018
20:29:44
да
есть с ним какие-то проблемы, или жалобы? рассматривали kotlin/js вместо него?

Sergey
18.03.2018
20:30:17
kotlinjs не рассматривали, жалоб особо нет (структурный тайпинг хуже чем во flow но жить можно)

это больше к Олегу вопросы - он у нас заведует этим делом...

Arky
18.03.2018
20:32:27
ну я про то что на основании чего ты такие выводы делаешь?)
Ну например можно изменить маппинг и схема апдейт сделать сразу. А в элоквенте миграции писать нада(9, причем для связей надо вручную писать столбцы. А доктрине только указать связь с сущностью, и она сама все сделает. В общим с ней меньше о столбцах думаешь)0 Ну это все мелочи)0

Sergey
18.03.2018
20:32:45
kotlinjs не рассматривали, жалоб особо нет (структурный тайпинг хуже чем во flow но жить можно)
у нас вот щас выбирают между ними, точнее собираются выбирать. думал мож знаешь че)

Sergey
18.03.2018
20:33:02
у нас вот щас выбирают между ними, точнее собираются выбирать. думал мож знаешь че)
ну я kotlinjs вообще не трогал.... все упирается пожалуй в биндинги библиотек. Я думаю под котлин ты запаришься.... а вот под TS основное все есть

Sergey
18.03.2018
20:33:39
я так понимаю он чисто типы и интерфейсы добавляет в жс

Google
Sergey
18.03.2018
20:33:44
ну в котлине есть ts2kt)

Sergey
18.03.2018
20:33:52
Sergey
18.03.2018
20:33:53
берутся тайпы из TS и конвертируются в биндинги

ну и есть dynamic если все плохо

чет в TS как-то вообще фичей нет

Sergey
18.03.2018
20:34:40
чет в TS как-то вообще фичей нет
оно ж все компайл тайм, на рантайм вообще никак не влияет

или ты хотел интроспекцию по типам в рантайме?) Олег тоже хочет)

Sergey
18.03.2018
20:35:10
ну в котлине как-то фичей поболее будет

одни корутины чего стоят

Admin
ERROR: S client not available

Sergey
18.03.2018
20:35:31
одни корутины чего стоят
а тебе они точно нужны в браузере?)

Sergey
18.03.2018
20:35:33
умные выводы типов, экстеншены и все такое

а тебе они точно нужны в браузере?)
канеш, они для этого в принципе и были сделаны

Sergey
18.03.2018
20:35:47
хотя если ты планируешь инграться со всякими там service worker-ами то может быть

Sergey
18.03.2018
20:35:55
это как замена async/await

только более продуманная

Sergey
18.03.2018
20:36:03
Sergey
18.03.2018
20:36:12
я слышал жалобы на выводы типов в TS

типа он очень туп в этом плане

Sergey
18.03.2018
20:36:21
ну короч мы kotlinjs не рассматривали как минимум потому что коду уже 2 года)

Google
Sergey
18.03.2018
20:36:23
и поддержка в IDE не всегда гут

Sergey
18.03.2018
20:36:38
как пых)

и анализаторы под пых

ну короч жить более чем можно, ну и там null safty подвезли не так уж и давно

Sergey
18.03.2018
20:37:24
омг, а не было?

Sergey
18.03.2018
20:37:27
угу

Sergey
18.03.2018
20:37:42
походу мы будем пионерами и возьмем kotlin/js

там правда нет jsx

Sergey
18.03.2018
20:37:54
> This server could not prove that it is www.typescriptlang.org; its security certificate expired 2 days ago.

хах

Sergey
18.03.2018
20:37:57
вместо этого тайп-сэйв билдеры

на что наши фронты сказали "так это ж ахуенно!"

Sergey
18.03.2018
20:38:32
ну попробуйте))

Sergey
18.03.2018
20:38:42
https://github.com/Kotlin/kotlin-fullstack-sample/blob/master/frontend/src/org/jetbrains/demo/thinkter/HomeView.kt#L28 и в итоге вот такой код вместо jsx пишешь

Sergey
18.03.2018
20:38:50
я дума за первые 2 недели вы не успеете много написать так что чуть что смигрируете

Sergey
18.03.2018
20:39:02
тоже верно

Sergey
18.03.2018
20:39:32
tsx вполне себе type safe

Sergey
18.03.2018
20:39:50
и местами порой придется самому биндинги дописывать

Страница 757 из 1418