Скажите, что это за новая мода пошла на __invoke? Почему

нельзя нормально определить метода класса?

24 ответов

32 просмотра

Не новая

Alexander- Автор вопроса
Andrii Dembitskyi
Не новая

тем лучше. а зачем?

Alexander
тем лучше. а зачем?

"How to Define Controllers as Services (Symfony Docs)" https://symfony.com/doc/current/controller/service.html#invokable-controllers

Alexander- Автор вопроса
Andrii Dembitskyi
"How to Define Controllers as Services (Symfony Do...

жесть. а написать вот так, видимо, Заратустра не позволяет class Hello { /** * @Route("/hello/{name}", name="hello") */ public function hello($name = 'World') { return new Response(sprintf('Hello %s!', $name)); } }

Alexander- Автор вопроса
Vadim
А зачем?

для простоты

Alexander
для простоты

А __invoke – сильно сложно?

Alexander- Автор вопроса
Vadim
А __invoke – сильно сложно?

да. только запутывает, если у тебя пару сотен контроллеров в проекте

Alexander
для простоты

Yaml конфиги роутинга не упрощаются так

Alexander
да. только запутывает, если у тебя пару сотен конт...

По опыту, запутывает как раз искать нужный экшен, видя лишь кучу контроллеров. Плюс каждый экшен - это +1 причина для изменений, а значит плюс причина для мерж конфликтов и прочего. Поэтому Invokable actions - топ для хттп. Классические контроллеры - это вообще устаревшая отрыжка MVC. Еще можно погуглить ADR, откуда это все пошло.

Alexander- Автор вопроса
Oleg Okwinza
По опыту, запутывает как раз искать нужный экшен, ...

у меня никогда не было проблем с поиском нужного экшена по роуту. Farmanager отлично справляется с поиском в файлах Каждый контроллер содержит, как правило несколько экшенов. как минимум, для обработки post,put, get-запросов

Alexander
у меня никогда не было проблем с поиском нужного э...

Ну если бложики всякие клепать, то любой вариант будет норм)

Alexander- Автор вопроса
Oleg Okwinza
Ну если бложики всякие клепать, то любой вариант б...

какая разница, что клепать? для PHP нет различия, что ты клепаешь

Oleg Okwinza
По опыту, запутывает как раз искать нужный экшен, ...

Если пишется рест апи, то писать для каждого запроса свой класс не очень хорошо, это может привести к конфликтам в роутах. Гораздо безопаснее будет если на каждую энтитю свой контроллер

Alexander- Автор вопроса
Andrei Lyashko
grep как вариант.

да grep. в моём случае FarManager - это мой греп

Alexander Semeko 🇱🇻
Если пишется рест апи, то писать для каждого запро...

Роуты маппятся на экшены, какие здесь могут быть конфликты? Для круда есть апи платформ и аналоги, если оч хочется много круда.

Andrei Lyashko
grep как вариант.

Если роуты описаны как аннотации рядом с экшенами - это еще будет как-то полезно. Но по большей части, если для поиска экшена нужно что-то грепать, значит что-то при организации структуры наших папочек пошло не так.

Alexander- Автор вопроса
Oleg Okwinza
Если роуты описаны как аннотации рядом с экшенами ...

грепать нужно, как правило, если ты не помнишь точно, что где находится.

Alexander Semeko 🇱🇻
Например - user/{id}, user/some-random-action

Ну тут дело не в экшенах, а в том, как у тебя роуты прописаны. Обычно имеет смысл разделять рестовый круд от условного рпц

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта