Konstantin
по вкусу можно добавить u - уникод (чтобы с кириллецей не страдало) s - DOTALL
Konstantin
вот, в дотолл дело
Konstantin
https://www.php.net/manual/ru/reference.pcre.pattern.modifiers.php
Konstantin
s (PCRE_DOTALL) Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - все символы, кроме переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
Юра
s мне не подходит он выбирает все строки
Юра
а мне одну
Konstantin
надо первую строку выбрать в смысле?
Konstantin
из мультилайна?
Юра
Короче мне надо выбрать одну строку без {
Юра
Либо ничего
Konstantin
одну - типа первую если их несколько?
Юра
Да
Юра
Только первую
Юра
Если в ней нет {
Юра
Элементарно вроде но что-то туплю
Юра
Либо ничего не выбирает либо больше чем надо
Konstantin
^[^\{]+
Konstantin
я бы сделал так, а уже потом доставал из $matches[1]
Konstantin
и флаг /m
Юра
Блин тупизм )
Юра
Мощ регулярок разбилась о простую задачу
Юра
Вроде выбрать все кроме скобки от начала строки до конца
Юра
Но почему-то не пашет
Юра
^[^{\n]*\n
Юра
во
Юра
но не пашет если строка одна )
Юра
Ладно это офтоп
Павел
но не пашет если строка одна )
Скорее не проверяет последнюю
Maksym
Всем привет. Как можно получить юзера с сервиса?
Maksym
спс
The Ant
😄
The Ant
Рано благодаришь
Konstantin
чят, а как в контроллере дёрнуть refreshUser у провайдера правильнее?
Konstantin
типа юзер приходит через oauth, что-то он там у себя поменял на стороне провайдера oauth, мы у себя хотим перезатащить его данные оттуда
Kirill
Всем привет! Подскажите, можно ли настроить команду console/bin d m diff, чтобы в миграциях индексы добавлялись с ключом CONCURRENTLY?
Konstantin
нет
Konstantin
бандл хочет весь ddl обернуть в транзакцию, чтобы иметь возможность роллбека. а этот ключ внутри транзакции не работает потому что он не тразакционный по своей сути
Konstantin
я не подскажу поведение актуальной версии постгреса в этом случае, а раньше такой альтер падал
Konstantin
возможно есть способ отключить транзакции вокруг миграции, кстати. но надо быть аккуратными
Konstantin
https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/configuration.html
Konstantin
transactional: no
Kirill
да, в миграции можно переопределить метод isTransactional и возвращать false
Konstantin
попробуйте? я не у компа щас, но мне теперь самому интересно
Kirill
оно работает, у нас в компании есть требование, чтоб все индексы добавлялись через CONCURRENTLY. Я для этого генерирую миграции, затем руками проставляю этот ключ и переопределяю метод isTransactional. Я просто хотел как-то автоматизировать это
Konstantin
ну это сложный момент, да, но вот такие ограничения базы. если задуматься, они довольно естественны, и вряд ли они куда-то денутся
Konstantin
я бы добавил условий что нетранзакционными могут быть миграции только с добавлением индекса одной строкой. чтобы не было помимо этого еще десятка запросов, которые могут сломаться посередине миграции
Konstantin
а так увы, только документация и контроль на код-ревью помогут
Kirill
а кто-нибудь использует Gedmo/Loggable? Можно ли как-нибудь настроить, чтобы логировались связанные сущности? Например есть сущности User и Tag many-to-many. Когда я пользователю привязываю теги, это не логируется Gedmo/Loggable. А мне нужно уметь это отслеживать
Иван
сначала логгируют всё подряд, а потом икебана падает
Konstantin
сначала логгируют всё подряд, а потом икебана падает
это не в кибану, это аудит-таблицы на триггерах
Konstantin
то есть падает постгрес!
Юра
И если гедмо работает с changesetом то наверное он не умеет логировать изменения коллектций
Юра
Я делал логирование руками, и точнл помню что коллекции я хедлил отдельным кодом
Konstantin
ваще триггерами надо делать а не доктриной
Shokha
Добрый день как запустить php bin/console d:m:m с параметром YES
Andrii
Добрый день как запустить php bin/console d:m:m с параметром YES
--no-interaction (как-то так) посмотри help по команде
Павел
Приветствую. Кто как релизит доменные ивенты, генерируемые в сущности? Была идея прослушивать postFlushEvent, но вроде как там завоздка, что нельзя сделат еще один flush внутри слушателя (судя по серчу этого вопроса). Для чего нужен еще один флаш - синхронные ивенты (ну мало ли). Ну и outbox паттер не получится запилить. Есть вариант с декоратором EntityManager. Мб какие еще варианты есть? А вообще цель отойти от flusher->flush($entityWithEvents)
Andrii
сделать событие SomeEntityUpdated, например, и в методе, который обновляет сущность (какой-то handler/service), его тригернуть?
Andrii
Вопрос в том, как не диспатчить сгенерированные ивенты вручную.
App\EventListener\SomeEntityListener: tags: - name: 'doctrine.orm.entity_listener' event: 'postFlushEvent' entity: 'App\Entity\SomeEntity' а еслти так и уже в listener делать еще какие-то странные вещи, но главное в loop не уйти
Andrii
Выше описал про postFlushEvent
из-за вот этого? https://stackoverflow.com/questions/50620612/postpersist-postflush-infinite-loop-in-symfony
Andrii
т.е. нужно еще раз изменить что-то в той же entity?
Павел
т.е. нужно еще раз изменить что-то в той же entity?
Есть другие проблемы, помимо этой.
Andrii
может подняться на уровень выше и использовать postPersist?
Павел
может подняться на уровень выше и использовать postPersist?
Там можно собирать ивенты, но диспатчить там нельзя так как транзакция езе не завершилась
Andrii
могу предположить, что можно перейти к чему-то типа message broker и там уже рулить все. т.е. сохранили entity и потом в rabbtimq, например, отправить сообщение. а дальше все остальные сервисы или что там, обрабатывают
Александр II
Добрый, подскажите пжл есть 2 контейнера поднятых рядом, смотрят на 1 бд в одном контейнере есть сущность class A { string $a; } в другом контейнере есть сущность class B { string $b; A $a } мне надо копировать сущность А из одного контейнера в другой? (ну это бред на мой взгляд)
Konstantin
2 контейнера?
Konstantin
wat
Павел
- докер? -ну типа ...
Александр II
да в докере
Павел
надеюсь Константин все понял
Сергей
надеюсь Константин все понял
вот это довольно понятно » (ну это бред на мой взгляд)
Konstantin
честно говоря не очень, но чувствую человека ждет увлекательное приключение ближайшие лет 10, если он, конечно, не бросит программирование раньше, поняв безнадежность этой затеи