Михаил
Вот чёт я гуглил-гуглил, да не нашёл, к сожалению
чот я смотрю свои проекты - вообще не могу найти как оно создаёт fk_ но симфа ещё idx_ создаёт на внешний ключ и его как раз через декларирование индексов можно поменять. видимо у нас разные субд
Doctor
Фишка в том, что Доктрина начала высирать 100500 переименований FK только сегодня. Полез копать, из-за чего это началось. Пару дней назад обновлял пакеты, в том числе doctrine/dbal (3.8.4 -> 3.8.5). Откатился сейчас на старую версию дбала, сраньё переименованиями при генерации миграций прекратилось. Кароч пока залочу doctrine/dbal на 3.8.4, нет времени по-нормальному разобраться в вопросе. Пусть это будет проблемой Будущего Меня
Doctor
понял.
Михаил
понял.
короче я посмотрел исходник (у меня правда 2.13 версия) там есть способ передать имя FK или оно будет сгененировано, но никто ниоткуда не передаёт
Михаил
понял.
Короче есть https://github.com/doctrine/orm/blob/3.2.x/src/Tools/ToolEvents.php вот там вроде можно всё переобъявить, а потом вся метадата пойдёт на генерацию миграции
Михаил
или PR и в pr добавить проброс какого-нибудь поля
Doctor
Спасибо, погляжу, как руки дойдут
Виктор
Всем привет! У меня в последние пару дней не открывается symfony.com. У кого-нибудь ещё есть такая проблема?
Александр
Привет. У меня нормально открывается.
Виктор
Похоже на то, что они блокируют айпи-адреса моего интернет-провайдера. Здорово.
Михаил
Похоже на то, что они блокируют айпи-адреса моего интернет-провайдера. Здорово.
520 это очень странный код, как будто коннект обрывается. В любом случае напиши провайдеру
Виктор
Думаешь, на их стороне проблема? Мне кажется, что со стороны сервера. В любом случае, ок, попробую написать провайдеру. Куда писать симфони - я пока не нашёл)
Apxat
думаю что поможет впн
Виктор
ВПН-то поможет) Но почему это вообще произошло? И похоже, что только меня затронуло( Пытаюсь выяснить.
kakoi-to-noob
Граждане, такой вопрос symfony/messanger делает reset Entity Manager между обработкой сообщений в очереди?
Павел
Граждане, такой вопрос symfony/messanger делает reset Entity Manager между обработкой сообщений в очереди?
clear делает, reset только если закрыто соединение. Там пинг перед каждым сообщением
Павел
но орпять же зависит от версии, там что то меняли
Павел
Т.е. если вопрос про утечку памяти и забитие сущностями - её нет
kakoi-to-noob
понял
Юра
Только по-моему это делает мидлвер какой-то, и если он выключен то не делает
Юра
Но по умолчанию он включен вроде
Павел
Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber
А вот ресет уже в пинг мидлваре вроде
Михаил
Господа, хочу напомнить. Сейчас участились скам атаки на компании через соц сети. Вам пишут якобы ваши сотрудники или вообще ceo. Пытаются под любым предлогом получить конфиденциальную информацию. Скам старый, но будьте бдительны. https://www.kaspersky.ru/blog/how-to-spot-and-prevent-boss-scams/37210/
Александр
Ребят, подскажите, я походу трою. Поставил 7, новую версию пощупать. В доках как и раньше // config/packages/security.php use Symfony\Config\SecurityConfig; return static function (SecurityConfig $security): void { Но куда Symfony\Config\SecurityConfig; пропал?
Denis
Есть ли в симфе простой способ не отдавать при сериализации Entity поля у которых значение null?
Kirill
Для начала не надо сериализовать энтити
Kirill
А во-вторых выкинь дефолтный симфони сериалайзер и поставь JMS бандл
Kirill
Симфони, изи сериалайзер, Валинор и проч - не очень или по скорости или по фичам
Dmitriy
Можно и симфони сериалайзер и Валинор ) Кирил слишком категоричен
Kirill
в симфони сериалайзер можно пхпстан парсер даже воткнуть и оттуда выдирать типы)
Kirill
но по скорости и качеству чот оно до сих пор не очень
Kirill
я уже рассказывал про то, что будет если попытаться симфонёй сериализовать some[foo] ключ?)
Dmitriy
можно, если типикал кейсы
так может у автора типикал кейс, а ты сразу "выкидывай" )
Vlad
Там же проблема в property access
Михаил
Хотите скорости, сериализуйте вручную. А симфони сериализатор норм.
Виктор
У меня такое было.
В чём была причина? Как решил?
Михаил
В чём была причина? Как решил?
Ты от куда? Из республики?
Виктор
Из России.
Михаил
Не отвечай, нужно проверить твоего провайдера но из другой точки
Михаил
Из России.
Ну это понятно, просто если из Крыма то там отдельные приколы могут быть
Виктор
Нет, не Крым.
Михаил
Так, ща, там есть возможность кое что в браузере почистить и часто проходит
Михаил
А, у тебя другой пк есть?
Виктор
Да. Попробовать с него?
Михаил
Да. Может быть в конкретном пк проблемы
Виктор
Попробовал. Та же проблема.
Login
В чём была причина? Как решил?
Причину не знаю. Решил открыв ссылку в контейнере firefox
Виктор
Более того. Я попробовал с мобильного интернета того же провайдера. И там открывается нормально.
Михаил
Может дело в роутере
Виктор
Да хз. Банальная перезагрузка не помогла. Однако через ВПН всё открывается, так что вроде не в нём дело должно быть.
Михаил
Впн работает на своей магии. Роутер это маленький компьютер, мало ли чо там фиксики делают. Может сертификаты или ещё что
Михаил
Лучше вообще убрать его из цепочки
Виктор
Михаил, похоже ты был прав) Помогло выдернуть кабель провайдера из роутера, воткнуть и заново залогиниться через интерфейс провайдера. После этого всё заработало. В чём именно была причина - похоже, останется загадкой. Спасибо за помощь!
Александр
Возможно что ip Динамичный, и блок был по ip. Сменился ip и cloudflare пустил на сайт.
Виктор
На мой взгляд это тоже наиболее вероятный вариант. Однако, я уже перезагружал роутер. По логике в тот момент он тоже должен был смениться, но это не помогло.
Виктор
Ну и опять же, если бы клаудфлэр не пускал, то было бы 1020. А 520 - это конечный сервер соединение сбрасывает, насколько я понял. Нонсенс какой-то, в общем.
Павел
Там же проблема в property access
Причём это вроде не проблема, а прямая работа описанная в доке
Александр
Ребят, либо я тупой, либо я слепой. Symfony 7 В конфиге twig $twig->global('route')->value(service(Route::class)); В этом классе class Route { public function __construct(RequestStack $requestStack) { dd($requestStack); } requestStack вроде бы есть, только он пустой, точнее атрибуты. Я помню что подобное делал в 6 версии и это работало.
Александр
Облазил документацию новой версии, вроде бы там всё тоже, ничего не поменялось
Александр
Он пустой, точнее атрибуты Что это значит? Что выводит dd?
Вот тут в атрибутах, предполагалось что будет _route. Но оно пустоё. Скорее всего где-то я прослоупочил.
Александр
А запрос как приходит? В контроллер?
Да, контроллер. Сделал так $twig->global('route')->value(service('request_stack')); Подумал мб что-то не так, но так всё норм. А как выше пример не работает.... что-то не очень логично. Ну чтобы не заморачиваться, сделал через Twig Extension... не так красиво конечно, но ладно
#lest
В каком месте правильно отдавать данные из кэша, в контроллере или сервисе
#lest
Использую redis через библиотеку predis, экземпляр класса получаю по di, данные получаю по ключу через метод get
Михаил
Если ты кешируешь sql запрос - то где-то в репозитории кеш работает. Если ты кешируешь на бекграунде (когда данные меняются, они сами автоматически кешируются), а фронтенд обращается к кешу то всё равно. Если у тебя кеширование происходит при запросе, то там спорно. Я бы обернул бы это в сервис. А лучше в middleware. То есть контроллер из запроса передаёт параметры в некий query объект. После этот query объект отправляется в query bus. Внутри есть мидлвара которая из query объекта получает ключ, если ключа нет в кеше, то пробрасывает вызов дальше и кеширует результат и в общем случае возвращает по ключу из кеша.
#lest
При запросе кэшируется по ключу если кэш сервис вернул null. Я думаю в контроллере проверить по ключу данные (ключ динамический) и если есть отдать данные с добавлением заголовком о ttl, если нет то полученные данные из сервиса добавить в кэш в контроллере и вернуть
Михаил
При запросе кэшируется по ключу если кэш сервис вернул null. Я думаю в контроллере проверить по ключу данные (ключ динамический) и если есть отдать данные с добавлением заголовком о ttl, если нет то полученные данные из сервиса добавить в кэш в контроллере и вернуть
Но тут смотри сам, если кеш нужен только для http бахни прям в контроллере Появятся ещё 2+ кейса - оберни в сервис. Что в сервисе, что в контроллере это всё равно надо мокать при тестах, так что плевать
R
Вдруг кто надумал "symfony/serializer": "7.1.*" Поломан! https://github.com/symfony/symfony/pull/57320