@phpclubru

Страница 32 из 956
dypa
21.11.2016
14:41:09
да хоть как

сколько товарный позиций требуется синхронизировать?

как часто?

Алексей
21.11.2016
14:42:02
Не самое рациональное использование 1Ски))

Google
dypa
21.11.2016
14:42:03
точно в штуках нужно отвечать, а не думаю бла бла

Алексей
21.11.2016
14:44:52
Важнее было бы посмотреть пример выгрузки. По нему можно понять, подхватится ли с битриксом без допила или нет. Если нет, то ясно будет одно: - тяп ляп и в продакшн не выйдет. нужен будет разраб, ну или самому немного приложить силенок. Иначе: готовое решение и в путь с песней. Считаю это первостепенным вопросом в данной задаче)

dypa
21.11.2016
14:48:06
руками пусть набивают тогда :)

Mihail
21.11.2016
14:49:00
ну наймут чувака он им по 15р товар забьет

Dmitry
21.11.2016
14:49:23
А потом окажется, что там еще 7-я 1С

Кстати офигенная идея

dypa
21.11.2016
14:50:21
я знаю одно кафе которое так делает каждый день

только не на сайт, а в инста... но сути это не меняет

Dmitry
21.11.2016
14:51:52
Но в общем битрикс для простых шаблонных решений - хорошая штука

Mihail
21.11.2016
14:52:25
в общем symfony наше все, остальное мрак и грусть

Dmitry
21.11.2016
14:53:24
не, симфони уже давно не можно, сейчас прикалываются по фреймворк агностик ;)

Mihail
21.11.2016
14:54:15
кому как а для меня symfony самое то

Pavel
21.11.2016
14:55:06
и ADR паттерн ага

Google
Dmitry
21.11.2016
14:58:20
главное, что там три буквы

если я хочу, например, $user->addRole(Role::someone()), где Role::someone() создает объект Role с нужным ID... и потом юзера сохранить, а на роль стоит cascade ... что делать, что бы нарушений уникального ключа не было? В репозитории брать роли, делать селекты и проверять?... про доктрину вопрос

Grigori
21.11.2016
17:27:37
где ты видишь нарушение uk?

Dmitry
21.11.2016
17:28:20
это доктриновские заморочки

Grigori
21.11.2016
17:28:22
что значит "на роль стоит cascade "?

Dmitry
21.11.2016
17:29:07
она будет пытаться сохранять все связанные модели... а так как объект Role не доставался из базы - она не знает, что он есть и пытается сделать insert в роли

Можно, конечно, отключить каскад (тогда доктрина при сохранении пользователя не будет сохранять роли, даже если они "новые"), и добавлять новые роли миграцией... как бы хотел упростить немного, создал именнованный конструктор в модели Role, если в базе такого нет - оно туда сохранилось.

Pavel
21.11.2016
17:33:11
нет

Grigori
21.11.2016
17:44:02
я бы отключил этот странный каскад и оставил внешние ключи базе, а логику - в приложении

да, роли принято добавляь миграциями

Pavel
21.11.2016
17:45:57
Доктрина сама любит хендлить внешние ключи

И вообще лезть во все аспекты

Dmitry
21.11.2016
17:48:04
да внешние ключи никуда и не деваются... каскад - это просто... ну типа есть у тебя две модели связанные и тебе надо $post = new Post(); $post->addTopic(new Topic()); - если каскад выключен, то тебе нужно вызвать сохранение топика, а потом - сохранение поста. Если в конфиге по этой связи каскад - то сохраняем только пост, а доктрина сама посмотрит связи, какие там объекты, и сохранит их

Grigori
21.11.2016
17:48:26
да, надо вызывать сохранение топика, потом сохранение поста

не надо полагаться на то, что Доктрина прочтет наши мысли

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

это уже логика, превращает модели в active record

Dmitry
21.11.2016
17:49:58
не знаю, я полагаюсь на документацию, а не на шаманство, оно работает и работает именно так, как нужно

Pavel
21.11.2016
17:50:09
иногда это может сработать, а иногда выстрелит в ногу
Кеке это прям мои ощущения от доктрины ?

Но на простых случаях все работает отлично

Google
Grigori
21.11.2016
17:51:26
дык в AR все так и прописывается, по документации - связи сущностей, типы связей, только это не считается хорошим дизайном

Pavel
21.11.2016
17:52:29
А доктрина еще и таблицы генерит по этим описаниям

Grigori
21.11.2016
17:52:37
это немного другое

Pavel
21.11.2016
17:52:56
И ругается если описание не соответствует тому что реально есть в схеме бд

Dmitry
21.11.2016
17:52:59
как бы причем тут AR я не понял, ну ок

Grigori
21.11.2016
17:53:39
надо различать структуру базы и логику приложения

AR - это data mapper + business logic

Dmitry
21.11.2016
17:54:17
к логике приложения описанное отношение не имеет, это логика сохранения в базу

Grigori
21.11.2016
17:54:55
логика сохранения в базу - это как insert генерить :)

а когда его выполнять - это логика приложения

Dmitry
21.11.2016
17:57:33
когда его выполнять да, возможно... на этом и заказчивается, на "сохрани мне все это в базу", а как, в каком порядке и т.п. - это persistance layer

Grigori
21.11.2016
17:59:08
в принципе, да

довольно сложно отделить "все это" от логики приложения

красиво в теории, но ненадежно получается

все-равно в будущем sql запросов править придется

бб

Grigori
22.11.2016
09:16:57
нет, я запросы руками пишу, а что?

Google
Pavel
22.11.2016
09:17:23
Доктрина странная

И ей часто нужно доказывать кейсами что действительно надо разрешить это сделать тебе

Всего лишь инструмент с весьма ограниченными возможностями

Кстати вчерашнее обсуждение навело меня на мысль что доктрина не должна лезть во внешние ключи, это не ее уровень обязанностей

Grigori
22.11.2016
09:19:29
любой ORM добавляет определенные ограничения

в большинстве случаев я предпочитаю простой query builder, а ORM писать руками

dypa
22.11.2016
09:28:24
Доктрина странная
нормальная она, просто ты хочешь странных вещей :)

Кстати вчерашнее обсуждение навело меня на мысль что доктрина не должна лезть во внешние ключи, это не ее уровень обязанностей
наоборот её, тебя избавляют от всей мороки с данными и написанием SQL запросов руками в 80% случаев

Pavel
22.11.2016
09:31:56
А не странные вещи это CRUD шлепать

Еще доктрина не умеет работать нормально со схемами в постгресе

Нельзя ей сказать "смотри в схемы, a,b,c а в схемы d e f не смотри"

Страница 32 из 956