Ilya 🃏
Ну хранить статус для каждого сообщения очень ресурсозатратно, учитывая наличие групп и каналов в чате)
Рустам
всем привет. на работе есть проекты, которые в теории можно, нужно и хочется делать на симфони, но есть один нюанс, который пока что останавливает на корню выбор фреймворка (по итогу все я делаю на битриксе, что уже не хочется делать)
к примеру, есть контентная страница. в публичной части выглядит вот так
Рустам
в админке это выглядит вот так. на скриншотах описано что можно делать.
вопрос: есть ли что-то такое на симфони? или нужно написать раз и навсегда? на симфони как админку я использую easyAdmin
Рустам
грубо говоря, большинство проектов комерческие, где есть новости, статьи, страницы и тд. верстка бывает сложная, хотя бы взять типичный слайдер, к примеру. не все заказчики будут пихать html код слайдера в визуальный редактор, поэтому, чаще всего, приходится делать в админке манипуляции, чтобы все заполнялось легко и интуитивно понятно.
Alexander
Если дизайн/верстка есть то быстрее сделать свой шаблон, роуты тоже не трудно сделать. В Sonata такое можно, в easyadmin не пробовал, так бы скинул ссылку.
Максим
Всем привет. Возможно ли в symfony 4.3 такое, чтобы геттер в entity, в зависимости от группы сериализации, отдавал данные в разных форматах(зависит от группы сериализации)?
Dmitriy
что такое группа сериализации ?
Максим
Вот такая штука в аннотации, которая позволяет настраивать отображение свойств при сериализации entity
artem
Всем привет) а кто-то сдавал zce?
artem
Если да, долго ли готовились? Хватит опыта senior/TL?
artem
6 лет опыта
artem
Да, и последний вопрос. Недавно смотрел что если человек проходит сертификацию авс то у его компании повышается уровень партнерства. С зендом такое работает?
Кирилл
А какое у зенда партнерство?
Кирилл
Опыта за 6 лет должно хватить
Ilya 🃏
Ilya 🃏
Я и сам не сразу заметил)
Ilya 🃏
Наверное тыкнул на мою отсылку в сообщении и зачитался))
Ilya 🃏
Работал кто со swoole?)
Ilya 🃏
Может подсказать, как общаться симфони с ней?)
Ilya 🃏
В обе стороны)
Ilya 🃏
Неужели никто не работал со swoole?( Или другим любым сервером для вебсокет соединений
Ilya 🃏
Как из симфони обратиться к запущенному вебсокет-swoole серверу?
artem
Bekzod
Ilya 🃏
artem
Ilya 🃏
Ilya 🃏
Только подрубили, пытаемся чат на нем написать, но сохранив логику в симфони основную
artem
artem
Просто assets bundle подруби
Ilya 🃏
Не понял, как тут клиент (реакт) связан?)
АбонентА отправил сообщение, мы его получили, направили АбонентуБ (если он онлайн) и отправили в симфу инфу о том, что в бд надо-бы это сообщение также записать
Ilya 🃏
Но или же симфа в друг в какой-то момент решила, что АбонентА получил уведомление, нужно бы ему его оперативно доставить
Ilya 🃏
Через swoole
artem
Откуда клиент отправляет сообщение? Какой интерфейс?
Ilya 🃏
На вебсокет подключенный шлет, либо на сервер отдельно (пока не решили)
artem
МБ вам MQ нужен и прямые руки?
Ilya 🃏
Причем тут mq и вебсокет?)
Ilya 🃏
Пакет юзверю-то как отправить?
artem
Юзверь клиент?
Ilya 🃏
да
Ilya 🃏
Подключенный к swoole вебсокетом
artem
Сокет читает MQ и отсылает по своему прямому коннекту. Профит
artem
Swoole
artem
*
artem
Симфа кидает сообщения
artem
Ну или как изначально писал. Но если кто знает что такое ресурс и как с ним обращаться
Евгений
Коллеги, всем привет! Подскажите, есть 2 связанные таблицы, допустим это блог и посты к нему. Связь ManyToOne в постах. Если попытаемся удалить блог, то выпадет исключение Foreign key violation, возможно его как-то через assert поймать при удалении, чтобы в форме вывести ошибку и исключение не выпадало, либо свой кастом удаления писать нужно
Alexander
On delete в анотациях к связи глянь в доктрине, поможет, настроишь как тебе нужно)
Евгений
onDelete есть cascade и set null но это не подходит
Евгений
нужно просто сообщение об ошибке вывести ему и чтобы сам пошел чистить
Dmitriy
Трай кетч имхо
Евгений
Вариант, пойду easyadmin расширю контроллер и пропишу спасибо
Dmitriy
Но я Б не делал бы наверное так
Евгений
я думал что-то стандартное в аннотации есть
Sergey
orphanRemoval=true или nullable=true
Sergey
В первом случае удалит и посты, во втором нужно чуть дописать сеттер, блоги отстануться, но с пустым пост_ид
Евгений
этот вариант не подходит, так как там вообще у нас задача про футбольные команды, есть чемпионаты и есть матчи к ним и вот чтобы человек не удалил чемпионат и за этим потерлись все каскадом матчи надо его приостановить, сказать у тебя есть привязанные матчи, удали их вначале, поэтому каскад не подходит, null тоже, надо в easyadmin вывести ошибку в форме ему невозможно удаление чемпионата со связанными матчами, есть вариант расширить easyadmincontroller и там на removeEntity отлавливать все эти события, но может мудрю с этим
Vadim
этот вариант не подходит, так как там вообще у нас задача про футбольные команды, есть чемпионаты и есть матчи к ним и вот чтобы человек не удалил чемпионат и за этим потерлись все каскадом матчи надо его приостановить, сказать у тебя есть привязанные матчи, удали их вначале, поэтому каскад не подходит, null тоже, надо в easyadmin вывести ошибку в форме ему невозможно удаление чемпионата со связанными матчами, есть вариант расширить easyadmincontroller и там на removeEntity отлавливать все эти события, но может мудрю с этим
Только не выводи ошибку, которую в catch поймал. Сделай проверку на наличие матчей и выкинь исключение, если нужно
Евгений
Alexander
этот вариант не подходит, так как там вообще у нас задача про футбольные команды, есть чемпионаты и есть матчи к ним и вот чтобы человек не удалил чемпионат и за этим потерлись все каскадом матчи надо его приостановить, сказать у тебя есть привязанные матчи, удали их вначале, поэтому каскад не подходит, null тоже, надо в easyadmin вывести ошибку в форме ему невозможно удаление чемпионата со связанными матчами, есть вариант расширить easyadmincontroller и там на removeEntity отлавливать все эти события, но может мудрю с этим
Странное решение вообще удалять матчи или чемпионаты, история матчей и чемпионатов всегда должна хранится, футбол любит статистику, футболлеры))
Александр
Может вариант перед удалением чемпионата посчитать связанные матчи и вернуть ошибку, если они есть? Буквально один запрос, зато никакой магии
Sergey
Евгений
Идеально! Спасибо!
Alexander
Евгений
Спасибо всем за помощь, выручили! :)
Сергей
кто-нибудь знает почему симфа не закрывает коннекшны к бд.
После запроса выполняю SELECT * FROM pg_stat_activity; и вижу коннекшн со статусом idle.
Anatoliy
А ты транзакцию в доктрине закрываешь?
Сергей
еще вопрос. Выполняю один и тот же запрос - и где-то в 10% случаев он падает с ошибкой "Unrecognized field: userId" ("/app/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php","line": 1715)
Падает вот в этом месте в репозитории $this->findOneBy([ 'userId' => $userId ])
Такое впечатление что падает при обращении к 1 из подов в кубе.
То ли метадата как-то криво кешируется, то ли что - хз.
Никто не сталкивался?
Гречушников
Господа, не по теме вопрос. а в пхп формат лога ошибок как то можно менять?
Гречушников
https://paste.laravel.io/c0267693-cc8e-43d3-88f4-4d41f27b6bc6
формат локально и на сервере отличается, от этого кибана мне средний палец показывает, при выводе ошибок
Гречушников
Я с ним знаком. Спасибо. Увы не могу его именно сейчас заиспол зовать
Alexandr
Можно свой обработчик сделать
https://www.php.net/manual/ru/function.set-error-handler.php
И в нужном формате всё писать. Не знаю как формат ошибок в дефолтном логе изменить