Юра
В плане симфа просто получит сообщение из транспорта и дернет по очереди хендлеров?
Юра
Мне просто нужно как бы отдельные очереди под каждого хендлера, не пойму это вообще возможно или нет
Юра
Похоже что нет. Ну значит в топку его )
Юра
Хотя можно роутить в несколько транспортов по идее а хендер долден слушать только с этого транспорта
prophet
Похоже что нет. Ну значит в топку его )
возможно есть более человеческое решение, но на практике помню было - делали декоратор хендлера, в нем инжектили несколько нужных и отрабатывали, симфа по-моему была 4я
Юра
Та мне веравно мессенджер не подойдёт. Мне возможно понадобится получать не из симфони сообщения а там все заточено на пхп сериализацию
Юра
Старый добрый oldsound rabbitmq решает обе проблемы
artem
Имхо. Непонятный bus symfony , который разрабатывают php dev чуть не так понимают в очередях, как те кто пишут rabbitmq
Юра
Наверное из спринга просто скопировали ) хотя я не знаю как там
Юра
Но то что в симфе с одной стороны вроде много всего намудрили, с другой стороны простейшие сценарии сложно реализовать
Тоже наблюдаю — с одной стороны гига-супер-пупер-трансформер с блэкджеком и ну-вы-поняли, а с другой — какие-то элементарные вещи приходится реализовывать натягивая трусы на голову 🤷🏻‍♂️😅
Юра
Это кстати минус абстракций. Сложно сделать абстрактную универсальную штуку и чтобы она все сценарии покрывала. Я в последнее время начинаю наоборот отходить от любых штук которые обещают мне универсальное решение. На практике очень редко кто меняет транспорт, БД, или еще что-то. А ограничения и усложнения бесят
Павел
Просто если отдельные очереди, чтобы понять че куда зачем, то это и решается через кучу транспортов. Если нужно чтобы определенные хэндлеры брали только опредленные мессаджи (ну например, мы хотим что бы сущность А никогда не обрабатывалась паралельно в разных хэндлерах при нескольких консюмерах), то можно порпобовать настроить direct похитрому с роутинг кей. Или например разные сервера с воркеами работали только с своими queue (например флоу с кэшем, чтобы почистить кэш на каждой машине), то можно именовать очереди через уникальный енв на каждой машине, а fanout (стандарнтный тип в симфе) сам раскидвает по всем
Павел
Там есть цикл статей, как раз про raw json с передачей emoji
Юра
Но наверное да в итоге можно сделать как мне нужно
Василий
Всем привет, подскажите пожалуста, разворачиваю проект на Symfony, получаю вот такую ошибку Cannot autowire service "App\Command\Cron\InquirySendCommand": argument "$name" of method "__construct()" is type-hinted "string", you should configure its value explicitly. Что предпринять? Заранее спасибо!
Василий
Надо смотреть код команды и версию симфы
Подскажите если не сложно, где это смотреть? С симфони первый раз работаю, в основном с ларавел
Василий
поменял версию пыха на 7.4, теперь такая ошибка Unknown column type "json_array" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType()
Василий
Уберите name
а в каком файле?
Павел
а в каком файле?
App\Command\Cron\InquirySendCommand
Василий
App\Command\Cron\InquirySendCommand
Спасибо, но к сожалению это ничего не дало((
Василий
В общем, вот такая команда помогла composer require doctrine/dbal:"^2.6" и версия пыха должна быть 7.4
Василий
Еще трабла - работает только главная. Внутренние все 404, куда копнуть?
Юра
console debug:router
Юра
И смотри есть ли там роуты для начала
Юра
Так же там много еще есть полезных команд. Посмотри их
Василий
Так же там много еще есть полезных команд. Посмотри их
Я с симфони знаком час от силы, где все это посмотреть подскажи пожалуйста)
Юра
php bin/console
Юра
Это аля артисан
Василий
debug:router маршруты определяет, вроде разобрался потихоньку, в общем - в проекте не было .htaccess в /pablic, создал загрузил - внутренние заработали)) Проект давнишний, года 3 лежал на полке, просят реанимировать
Василий
Подскажите парни, в дистрибутиве папка /public, а на хостинге /public_html, где в конфигах поменять? А то с локалки переношу, вот такую ошибку получаю An exception has been thrown during the rendering of a template ("Could not find the entrypoints file from Webpack: the file "/home/s/*****/public/build/entrypoints.json" does not exist.").
Юра
https://symfony.com/doc/current/configuration/override_dir_structure.html
Василий
https://symfony.com/doc/current/configuration/override_dir_structure.html
Спасибо, но чет ничего не получилось. В composer.json в extra прописал "public-dir": "public_html", выполнил composer dump-autoload - все равно не хочет. Может где то еще надо что-то заменить?
Вроде есть небольшой бандл symfony/apache-pack помогает с вот этими вот делами
Юра
Там на сайте дока для каждой версии есть, нужно выбирать свою
Василий
понял, спасибо, щас попробую
Василий
поменял на доку своей версии, все тож самое
Василий
Такая проблема: при переключении в .env dev на prod внутренние страницы работают, главная отдает 502. Что это может быть?
Andrii
Такая проблема: при переключении в .env dev на prod внутренние страницы работают, главная отдает 502. Что это может быть?
все может быть. проблема в том, что upstream php долго не отвечает и nginx (скорее всего он у вас) падает с 502
Василий
все может быть. проблема в том, что upstream php долго не отвечает и nginx (скорее всего он у вас) падает с 502
на локалке разобрался, php bin/console cache:clear, а вот как на хостинге это сделать - хз
Andrii
на локалке разобрался, php bin/console cache:clear, а вот как на хостинге это сделать - хз
у хостинга должен быть ssh (часто надо включать самому в настройках). логинитесь по ssh и выполняете команду
можно ещё руками по фтп удалить /var/cache/prod но командой лучше конечно
Василий
ssh %username%@%ip_or_host%
спасибо, буду пробовать
команда она не только старое удаляет, она там и новый кэш "прогревает"
типа чтоб не ждать первого юзера и первый запрос
Василий
типа чтоб не ждать первого юзера и первый запрос
а вот тут /var/cache/prod там есть папки и файлы, что удалять?))
Даже саму папку “prod” можно, вроде. Симфа сама пересоздаст
Василий
понял, спасибо!
Корочка
Всем привет. Никто не сталкивался? Стоит Api Platform. Проблема возникает после того как данные сохраняются в БД. Сохраняются корректно, а вот когда обратно происходит нормалицзация объекта и передача его на фронта, то возникает такая ошибка. Да, погуглил, посмотрел проблема в кодировки и в неправильной работе json_encode. Под капотом Symfony данные так и нормализует из объекта в json. Только вот на локалке работает, а залили на прод и такая ошибка. Может кто что знает UPD разница в версиях php. Локалка: 8.0.16 Прод: 8.0.10 Все остальное одинаковое
SK
Народ кто собирал симфони в докере ?
Vlad
Народ кто собирал симфони в докере ?
задавай конкретный вопрос
SK
задавай конкретный вопрос
в энтрипойнте cache:warmup создаёт /var папку но при этом от рута. Как создать её от www-datta ?
SK
создать от рута и поменять владельца например?
нету su и sudo тока на этапе создания контейнера
Gleb
нету su и sudo тока на этапе создания контейнера
Дмитрий выше уже написал, но я имел в виду chown сделать
Dmitry
нету su и sudo тока на этапе создания контейнера
Тогда: RUN ... cache:warmup RUN chown www-data:www-data -R ./var
SK
USER www-data RUN ... cache:warnup USER root
там обращение к базе идёт, всё это в compose - тоесть базы на момент билда просто нету
SK
поэтому я не могу просто в dokerfile это прописать
Dmitry
там обращение к базе идёт, всё это в compose - тоесть базы на момент билда просто нету
Обращение идёт чтобы определить версию БД. Чтобы не ходил пропишите свою версию в конфиге вручную: doctrine: dbal: driver: 'pdo_pgsql' server_version: '12.3'
SK
в базу
SK
#!/usr/bin/env bash set -e if [[ $@ == *"fpm"* ]]; then cd /var/www/html ./bin/console doctrine:migrations:migrate --no-interaction ./bin/console lexik:translations:import --merge --no-interaction --cache-clear ./bin/console cache:warmup fi exec "$@"
SK
так выглядит