Константин
Принял, спсисбо
Aleksandr
ну бля
Aleksandr
как так можно
Юра
А я не знал про messenger использовал всегда rabitmq bundle. А тут такая крутотень оказывается
Юра
Да я уже прочитал
Юра
Интересно на нем можно задать завтсимость сообщений?
Юра
Чтобы одни задави не выполнялись пока другие не выполнились
Юра
Наверное кастомный сендер надо написать
Юра
Хотя это вробе бодьше message queue а не task queue
ILΨλ
ILΨλ
https://symfony.com/doc/current/components/workflow.html
Юра
Не совсем
Юра
К примеру у меня стоит задача распарсить сайт
Юра
Мне надо создать сраду много задач
Юра
Одни на скачивание, другие на парсинг и т.д
Юра
И вот мне надо чтобы задачи парсинга к примеру ждали пока выполнятся задачи скачивания
Юра
Я это решал вручную
Юра
Вот интересно есть ли готовое
Сергей
Создаешь очередь со скачанной страницей.
На нее вешаешь консьюмер.
Консьюмер парсит.
Юра
https://php-enqueue.github.io/
Юра
вот такое наверное что-то
Юра
Но я предпочитаю использовать симфонийские компоненты если они есть, вот и интересно можно ли там как-то организовать такое
Юра
https://php-enqueue.github.io/job_queue/run_sub_job/
Юра
Хотя тоже не совсем то. Мне надо было заранее нагенерить задачи, дерево задач
Юра
Чтобы прогресс отобразить
Юра
А тут по ходу выполнения сабтаски создаются вроде
Daria
Привет!
Подскажите, пожалуйста, что еще нужно проверить, чтобы заработало.
Symfony 5.0, dev env, пакет 1up-lab/OneupFlysystemBundle.
Хочу задать ленивую загрузку для League\Flysystem\Adapter\Local, но она не работает (class_implements($filesystem) не показывает прокси интерфейсы).
services:
_defaults:
autowire: true
autoconfigure: true
bind:
$filesystem: '@oneup_flysystem.local_filesystem_adapter'
#other stuff
League\Flysystem\Adapter\Local:
lazy: true
symfony/proxy-manager-bridge и ocramius/proxy-manager ставила, var/cache чистила.
Daria
Aleksandr
Denis
Приветствую
Есть такие контроллеры с довольно простой логикой но с кучей строк (а потому кажутся толстыми).
Правильно ли в Symfony такой код хранить в контроллерах?
Или лучше выносить куда-то(в сервисы или...), чтобы сделать контроллер тонким? И как правильно это сделать?
https://i.imgur.com/eaririz.png
C
loop = asyncio.get_event_loop()
Alexander
В сервисы выносить логику правильнее
Александр
чет этих четырех ребят надо сразу в бан, последний бот лихо спалился с ником
Ivan
Ivan
Ivan
Это очень похоже на SQL в шаблонах
Юра
Да вынеси все в другой класс, в котором будет все то же самое, зато в контроллере будет одна строка. Профит
Юра
Зато будешь спать спокойно
Daria
шов ас же код
Это код решения
https://gist.github.com/glaphire/8b053709800b6804aa4d86664c447a5d
Юра
Можно просто разбить на методы внутри контроллера, чем это хуже?
Юра
А повторяющиеся методы вынести в базовый контроллер
Юра
Переиспользоть код в контроллере никто не мешает
Юра
Это просто говнокол вам попался
Aleksandr
ну а в репозитории его написать, чем не вариант? зачем вообще строить запрос в контроллере?
Юра
Вообще выборки вроде по канону в репозиторий
Юра
Только надо абстрагивароться от объекта риквест, а то получается нехорошо,
Сергей
Засирать репозиторий такими методами тоже не хорошо)
Имхо, надо в билдер вынести и будет красиво и фильтры любые можно включать/выключать)
Daria
Юра
В репозитории и так есть квэри билдер
Юра
Получается билдер поверх билдера
Юра
Тут главное не перегнуть, а то бывает от ква абстракций так же подванивает как от лапши
Юра
Все по ситуации
Юра
Я вообще смотрю многим нужен какой-то конкретный ответ
Юра
Нету такого
Daria
Denis
Сергей
Denis
спасибо
Maxim Kainov
Aleksandr
готово
Denis
artem
Всем привет. Вопрос от части по симфе. Написал аппликейшн. Там кроме роутинга и контроллеров ничего нет, на пхп без каких-либо библиотек. Сейчас пишу контейнер и вот не знаю где его хранить и инициализировать так чтобы не было моноблока. Как в симфе, в любом месте мог получить объект с контейнера
artem
Т.е. в индексе у меня стартует объект аппликейшн, там впринципе могу и инициализировать контейнер с конфигов. Как сделать так чтобы он был доступен в сервисах итд? Без библиотек, мам, пап и кредитов
Daria
Daria
просто с 4й версии отошли от явного использования контейнера для получения классов
Сергей
а не проще взять какой-нибудь легковесный фреймворк вроде слима?
artem
Можно и без всего этого, но тогда скучная реализация для позиции сеньора
artem
https://indigotree.co.uk/automatic-dependency-injection-with-phps-reflection-api/
artem
Вот кстати неплохое описание как происходит инекция в конструктор симфони. Единственное что массив депенденси уже будет заполнен при запуске приложения
artem
Пока полет нормальный. Только нужно было сначала отрефакторить классы)) уже подзапутался
Андрей
@artemzakholodilo
» Как в симфе, в любом месте мог получить объект с контейнера
в симфе настоятельно не рекомендуется получать объект с контейнера в любом месте. да и вообще там по умолчанию все сервисы приватные.
для получения сервиса в любом месте тебе надо посмотреть в сторону сервис-локатора