@symfony_php

Страница 433 из 1418
$iD
01.12.2017
13:42:32
завтра

Sergey
01.12.2017
13:43:00
а что у вас там на митапах интересненького?

$iD
01.12.2017
13:43:33
снова Сергей будет Солить солид

:)

Google
Sergey
01.12.2017
13:44:07
эх, а у нас все за микросервисы топят

$iD
01.12.2017
13:44:46
угу, на fwdays топили за микросервисы

ну и cqrs/es

Sergey
01.12.2017
13:45:43
мне митапчики больше нравятся чем fwdays чет

можно понабрасывать и потроллить

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

Alex
01.12.2017
13:46:33
Всем привет. А что посоветуете по cqrs почитать интересного?

Pavel
01.12.2017
13:47:56
завтра
где и во сколько

Sergey
01.12.2017
13:48:24
Всем привет. А что посоветуете по cqrs почитать интересного?
в "синей" и "красной" книгах базовой инфы хватает

Эванс и Вернон

$iD
01.12.2017
13:48:53
где и во сколько
facebook.com/events/2201285596764845/

Sergey
01.12.2017
13:50:41
о, кассандра

$iD
01.12.2017
13:52:26
о, кассандра
букай билет на самолёт )) успеешь

Google
Sergey
01.12.2017
13:52:49
у меня билеты в польшу уже)

Bohdan
01.12.2017
14:13:47
ча?
имел ввиду сохраниться перед созданием бранчи, если все плохо - загрузить прошлую версию

Sergey
01.12.2017
14:14:26
Всем привет. А что посоветуете по cqrs почитать интересного?
codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/

начни с этого

что бы потом когда будешь читать как люди делают cqrs с моделью экторов и ивент серсингом фильтровать инфу

Artemiy
01.12.2017
14:15:06
Alex
01.12.2017
14:21:29
@fes0r Спасабо за ссылку. Небольшой вопрос про евент сорсинг (может сам подскажешь или знаешь где прочитать) я понимаю идею, что мы храним базовую сущность и ее изменения. И в процессе работы с этой сущностью воспроизводим все евернты и так сказать, накладываем на нее. Это все ясно, но как быть если, предположим есть товар (базовая сущность) и набор событий, например изменение цен, пускай их 200 и надо выбрать все товары с ценой 100$. Как поступают в таком случае?

Sergey
01.12.2017
14:21:57
есть проекции на этот случай для выборок

Alex
01.12.2017
14:22:40
другими словами я просто храню каким либо образом обьект, на котором воспроизвел весь список евентов ?

Sergey
01.12.2017
14:24:05
в проекции у тебя будут окончательные варианты твоих товаров с их актуальными ценниками, которые ты используешь для своих выборок, аналитик и тд

Alex
01.12.2017
14:26:18
не будет ли у меня в таком решении вариантов, что мои проекции немного отстают от действительности, например евентов очень много за единицу времени? или это уже как напишешь эти проекции?

Sergey
01.12.2017
14:26:41
но тут смотри

1. есть проекции на чтение - то что они на пару сотен милисекунд отстают от реальности - это не критично, у тебя и так и так то что видет пользователь уже идет с запазданием (пока дошло, пока дорендрилось, + 300 милисекунд минимум на то что бы человек понял что видит)

2. ивенты генерятся через write модель, это тоже по сути проекция, она сначала пробует поменять свой стэйт, и если удалось - то запоминает событие. В коде это выглядит как-то так: public function doSomething($someData) { // protect pre-conditions if (!$someData) { return; // или мы можем запомнить событие что что-то не удалось, полезно для аналитики и суппорта } $event = SomethingHasBeenChanged::occur($someData); $this->replayAndRemember($event); }

в replayAndRemember оно попробуем воспроизвести ивент на стэйт, там же можно делать проверку инвариантов что у тебя стэйт все еще валидный. И если все хорошо - ивент сохраняется.

то есть в целом тут уже можно добиться того что состояние write модели всегда актуально

vlad
01.12.2017
14:31:35
ребят, всем привет

Sergey
01.12.2017
14:31:36
дальше можно просто стараться уменьшить задержки на формирование проекций

Google
Sergey
01.12.2017
14:31:57
event sourcing это простая идея, но как и любая хрень с ивентами имеет кучу подводных камней

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

vlad
01.12.2017
14:32:34
The table with name 'tablename.fos_user' already exists. кто-нибудь сталкивался с такой ошибкой? говорят, проверить все связи OneToMany но не понимаю, куда копать..

Sergey
01.12.2017
14:32:51
но профит тоже крутой - иметь возможность делать ту модель данных, которая тебе удобна под запись и чтение, причем разные модели данных для разных операций. Ну и если бизнес еще только формируется - это ценный кладесь информации о том как пользователи реально используют твой продукт

Sergey
01.12.2017
14:33:25
ага, только легаси кода придется держать тонну чтобы поддерживать обработчики с самого начала ивентов

Alex
01.12.2017
14:33:53
@fes0r Спасибо за развернутый ответ, стало понятнее

Sergey
01.12.2017
14:34:37
The table with name 'tablename.fos_user' already exists. кто-нибудь сталкивался с такой ошибкой? говорят, проверить все связи OneToMany но не понимаю, куда копать..
"таблица уже есть". Дальше вопрос что ты сделал что бы ошибка появилась. Скорее всего ты пытаешься сделать либо schema:create либо накатить миграции

vlad
01.12.2017
14:34:52
update пытаюсь сделать

при этом mysql говорит, что у базы, к которой я обращаюсь, нет таблиц

Sergey
01.12.2017
14:38:40
1. проверь к какой базе подключаешься 2. проверь что у тебя реально нет таблиц 3. можешь сделать dry-run и глянуть сгенеренный sql

vlad
01.12.2017
14:41:40
пытаюсь вывести таблицы в той же базе, к которой идёт коннект

vlad
01.12.2017
14:41:41
ответ:



Dmitry
01.12.2017
14:43:04
Всем привет. Перевел проект на 3.4 все гуд, но остался один deprecation User Deprecated: The "knp_paginator" service is private, getting it from the container is deprecated since Symfony 3.2 and will fail in 4.0. Вызываю как $this->get('knp_paginator')->paginate(); Не совсем понимаю как исправить, если Paginator::class писать то выводит что не объявлен, дублировать в сервис что-ли autowire для него или в самом плагине public: true должны добавить.

Google
Sergey
01.12.2017
14:44:52
в контроллеры можно инджектить в аргументы экшена если что

Dmitry
01.12.2017
14:44:58
Ага, понял. Спасибо, сейчас попробую

vlad
01.12.2017
14:47:48
ребят, а атрибут mappedBy - должен быть уникальным?

если у меня, например, в одной сущности 3 связи oneToMany

Sergey
01.12.2017
14:48:29
ребят, а атрибут mappedBy - должен быть уникальным?
у тебя не может быть 2 связи замэпленных через одно поле

тем более если ты определяешь one-to-* связь

vlad
01.12.2017
14:50:23
извини, что с вопросами лезу, но может быть поможешь я читал документацию, но не особо понял смысл этого атрибута понял, что он и для налаживания связи, двусторонней, между сущностями

но я вот указал для 3-х полей в аннотации одно и тоже значение, в атрибуте mappedBy ну и как следствие, видимо, это неверно

иначе говоря, так делать нельзя, да?



Admin
ERROR: S client not available

Sergey
01.12.2017
14:54:05
но я вот указал для 3-х полей в аннотации одно и тоже значение, в атрибуте mappedBy ну и как следствие, видимо, это неверно
mappedBy должен указывать на то поле в связанной сущности, по которой можно по свяди в обратную сторону сходить. Соответственно у тебя там связь 1 : 1 между атрибутами

vlad
01.12.2017
14:57:46
спасибо

Pavel
01.12.2017
17:47:34
а зачем код затирать или там названия перменных рутовые пароли?:)

Vladislav
01.12.2017
17:50:04
там название типа IIITOIIOP

или JIACTHENM

Sergey
01.12.2017
18:03:57
чет как-то cache pools в симфони замудрили

хрен настроишь чтобы через доктриновый адаптер работал serializer/validator

vlad
01.12.2017
18:31:31
друзья, такой вопрос

в некоторых проектах, отчего-то, phpStorm не сразу цепляет плагин симфони

Google
vlad
01.12.2017
18:31:48


т.е. получается такая ситуация, например

и так с большинством методов и прочего

отчего это может быть?

всё настраивается всегда одинаково, а вот цеплять не хочет

Dmitry
01.12.2017
18:32:30
он вроде кеш юзает, может не запускал еще приложение, кеша нет

vlad
01.12.2017
18:33:36
не запускал? а как это сделать?) немного не понимаю терминологии у меня обычный symfony-проект

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

а очень бы их хотелось увидеть

Dmitry
01.12.2017
18:36:52
cache:warmup попробуй из консоли выполнить, и посмотри

Sasha
01.12.2017
18:39:00
Может vendor в игноре?

Можно попробовать обнулить индекс пусть переиндексирует

vlad
01.12.2017
18:43:11
не, это сработало бы, иначе

cache:warmup попробуй из консоли выполнить, и посмотри

слушай, с индексом помогло

спасибо большое

vlad
02.12.2017
07:05:32
добрый день всем ребята, такой вопрос как-то обошёл его стороной метод flush у EntityManager'a можно вызывать один раз, в конце всех манипуляций с сущностями? или после каждой манипуляции с конкретной сущностью?

Евгений
02.12.2017
07:13:52
Один раз

Александр
02.12.2017
07:54:12
ребят, подскажите, как расшивочная таблица на англ называется плиз

Bohdan
02.12.2017
07:57:15
что ты под ней подразумеваешь?

Александр
02.12.2017
07:59:34
то что создается чтоб связать две manyToMany таблицы и хранит пары ключей от обеих

Bohdan
02.12.2017
07:59:50
pivot table

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