Павел
Павел
The Ant
Ну не)
открой доку по симфони секурити, там всё написано про этот кейс
The Ant
почему 100, когда тебе надо 2 всего?
Павел
нужен глобальный механизм обработки ошибок
The Ant
Павел
Допустим 2 админки - одна на сайте, другая в мобилке
Max
И по дефолту отдавать html, а если content type=json то и формат ответа менять
Павел
там надо accepted-content type или как то так тогда слать
Павел
Короче нужен скорее кейс, кто как реально делает, а не предположение, как можно сделать
The Ant
ну я сделал написав авторизаторов парочку
Павел
The Ant
как в доке сказано, не придумывав ничего. и вполне себе получилось
Павел
авторизация и еще 100 роутов админки
Павел
одна админка в апи, другая сайт рендер
The Ant
т.е. тебе надо глобальный errorHandler поделить?
Vlad
Vlad
Vlad
ничего в адресе не надо указывать
Павел
Спасибо, сейчас попробую. Но получается, что тогда onKernelException пролетает мимо верно?
Vlad
я не знаю зачем он тебе нужен)
Vlad
все из коробки же
Павел
все из коробки же
Надо потестить, наверное не подойдет. Из коробки видимо просто рендеры разные включаются и станндартный ответ, ну или нормалайзеры писать.
Null
Так вроде если сериалайзер пак ставишь, он в зависимости от заголовка accept сам ошибки по-разному рендерит.
Опять же, есть flatten exception.
Vlad
все так
Null
Павел
Null
Что именно?
Павел
все так
За формат спасибо, можно его юзать вполне мануально
Null
Есть просто золотое правило: чем больше слушателей, тем хуже )
Паттерн "наблюдатель" может в итоге как и паттерн миддлверов привести к неистовой квантовой запутанности.
Павел
Что именно?
Ошибки, коды, формат. Я так понимаю можно флаттен серилизовать, но я чет привык отлавливать ExceptionEvent
Null
В смысле? Типа, на фронт ошибка с кодом 1, через апи - 2 ?
Null
А зачем их по-разному конфигурировать? Наоборот же. Формат самой ошибки должен быть один.
Просто мобилка его по-своему рендерит, пека - по своему.
Павел
Павел
Не html/json
Павел
Vlad
ну сделай кастомные нормализеры и все
Vlad
дыа
Null
Цепочка обязанностей почти всегда лучше, чем гора if / switch (Если ты не голанг-разработчик :D)
Роман
Vlad
а че нельзя было вынести в argument resolver?
Vlad
https://github.com/BoShurik/TelegramBotBundle/blob/master/src/Controller/WebhookController.php#L37
Роман
Null
Цепочка обязанностей != симфони.
Null
Собственно, все где supports используется это ж вроде она и есть.
Так что у человека выше нормалайзеры самое оно использовать.
Роман
Null
Тормоз? Нет. Они как раз быстрее работают) Просто работать с файлом, где 9001 строка кода и все это - свитч - тлен.
Павел
Подскажите плиз по тегам кэша. Правильно ли я понимаю, что лучше их избегать если это возможно в нагруженных системах?
Просто пытаюсь продебажить, а там прям целые процедуры по инвалидации тега. П.С. Смотрю по редису.
Иван
Иван
а когда нужны, то это лучше, чем без них
Konstantin
сильно зависит от профиля нагрузки на кеш. в целом, редис довольно много может переварить. особенно много чтений
Иван
ну вот например статья обновилась
значит сбрасывается кеш страницы статьи, кеш главной и кеш раздела
Konstantin
лично я предпочитаю явно указывать инвалидацию в коде, типа не полагаться на магические механизмы, а три раза в коде написать $redis->del(...)
Павел
Понятненько) у меня кейс, что мне чистить удобно по данным(ключу) , которые я получаю внутри колбэка. Вроде удобно тегировать, но выглядит страшно. Я понимю когда например на тег вешается много значений а они потом инвалидируются, а у меня почти 1 к 1
Konstantin
если удобно тэги, берите. начнет портить перформанс - откажетесь. нет смысла раньше времени оптимизировать
Павел
Спасибо :)
Konstantin
Спасибо :)
лично я (чисто в рамках поболтать) не люблю вендор-лок на всякие высокоуровневые либы, пользы от симфони/кэщ, мессенджера, локера и многих вещей не особо очевидна. ну тебе реально не нужен адаптер чтобы и в файлы, и в мемкеш, и в редис и еще в два десятка разных стораджей умел. скорее всего, тебе нужен конкретно редис-кеш с какими-то редис-специфик фичами, но они будут скрыты за этим мегауниверсальным адаптером.
да, ты выиграешь если сменишь редис на мемкеш, например, но как часто это делается в реальных проектах? зато если они решат всё изменить, сломать и переделать, ты никуда не денешься, придется пользоваться. поэтому я стараюсь в своих командах не блокироваться на симфони-компоненты, если их без особых затрат можно заменить на своё
Иван
Konstantin
понятно, что http foundation, доктрину, твиг итп не особо заменишь своими костылями, но фанатично тащить всё что делает симфони, я бы не стал
Konstantin
Иван
ничо не понял
8 серверов, у каждого по редису, если удалить ключик на одном, то на втором будет старое значение
Konstantin
ну так это, кажется, задача не библиотеки symfony/cache, а redis cluster, например
Konstantin
это в целом относительно сложно решаемая задача: у нас появляется distributed transaction (мы хотим чтобы ключ удалился либо на всех 8, либо ни на одном и операция завершилась ошибкой). я прям точно уверен, что это на уровне редис-адаптера в симфони-кеше не решается
Konstantin
поэтому обычно такое стараются вытащить из прикладного кода и возложить на базу (удаляем на мастере, реплики асинхронно тоже у себя поудаляли)
Andrii
лично я (чисто в рамках поболтать) не люблю вендор-лок на всякие высокоуровневые либы, пользы от симфони/кэщ, мессенджера, локера и многих вещей не особо очевидна. ну тебе реально не нужен адаптер чтобы и в файлы, и в мемкеш, и в редис и еще в два десятка разных стораджей умел. скорее всего, тебе нужен конкретно редис-кеш с какими-то редис-специфик фичами, но они будут скрыты за этим мегауниверсальным адаптером.
да, ты выиграешь если сменишь редис на мемкеш, например, но как часто это делается в реальных проектах? зато если они решат всё изменить, сломать и переделать, ты никуда не денешься, придется пользоваться. поэтому я стараюсь в своих командах не блокироваться на симфони-компоненты, если их без особых затрат можно заменить на своё
так можно рассуждать о любых библиотеках. имеет смысл иметь кеш от симфонии и не пилить велосипед. если вдруг надо переключить на другой инстанс кеша (например, с мем кеш на редис), то у вас пара строк в конфиге и работаете дальше.
Konstantin
я согласен, да, нет однозначного ответа на этот вопрос. и никогда не будет, поэтому тут включается какая-то оценка рисков, "чуйка", извините, и все такое. то есть я, начиная новый проект, сажусь и оцениваю какие плюсы мне принесет абстракция и какие минусы
Konstantin
если вероятность смены кеш-стораджа минимальна (допустим, мы сраная веб-студия, что клепает сраные сайты-визитки на одном стеке и знать ничего не знает про другой), то для меня возможность смены редиса на мемкеш какое-то слабое преимущество
Konstantin
ну типа я точно знаю что никогда в жизни мне оно не надо будет