Konstantin
по вкусу можно добавить
u - уникод (чтобы с кириллецей не страдало)
s - DOTALL
Konstantin
вот, в дотолл дело
Konstantin
https://www.php.net/manual/ru/reference.pcre.pattern.modifiers.php
Konstantin
s (PCRE_DOTALL)
Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - все символы, кроме переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
Konstantin
Юра
s мне не подходит он выбирает все строки
Юра
а мне одну
Konstantin
надо первую строку выбрать в смысле?
Konstantin
из мультилайна?
Юра
Короче мне надо выбрать одну строку без {
Юра
Либо ничего
Konstantin
одну - типа первую если их несколько?
Юра
Да
Юра
Только первую
Юра
Если в ней нет {
Юра
Элементарно вроде но что-то туплю
Юра
Либо ничего не выбирает либо больше чем надо
Konstantin
^[^\{]+
Konstantin
я бы сделал так, а уже потом доставал из $matches[1]
Konstantin
и флаг /m
Юра
Блин тупизм )
Юра
Мощ регулярок разбилась о простую задачу
Юра
Вроде выбрать все кроме скобки от начала строки до конца
Юра
Но почему-то не пашет
Юра
^[^{\n]*\n
Юра
во
Юра
но не пашет если строка одна )
Юра
Ладно это офтоп
Maksym
Всем привет. Как можно получить юзера с сервиса?
The Ant
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
Павел
Приветствую. Кто как релизит доменные ивенты, генерируемые в сущности?
Была идея прослушивать 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
т.е. нужно еще раз изменить что-то в той же entity?
Павел
Andrii
может подняться на уровень выше и использовать 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, если он, конечно, не бросит программирование раньше, поняв безнадежность этой затеи