Aleksandr
@kugaudo 😁
artem
А вы умеете делать" ты лошара, ты сдохнешь" ну итд к тем кто на zce идет?
artem
В общем, буду благодарен за ссылку на yellow pages и php7 сертифика
artem
Нас в Днепре пока с десяток
artem
В Украине если сотня будет то мы в Кыргызстане
Aleksandr
по-моему не все понимают, о чем ты говоришь)
artem
artem
Ладно, у меня есть 2 месяца
Igors
@Cawa87 я для прикола вбил в поиск симфони а тут такое 😅
Aleksandr
бывает)
Igors
Igors
@schiller2k аннотации-то ни при чем ) вы ж скорее всего хотите аннотации для валидатора, а каскадный ремув с этим вообще не связан - он происходит после валидации (если вообще происходит)
Андрей
Привет всем, может кто подскажет как можно без if и switch конструкций, получить определенный экземпляр класса по параметру который приходить из Request`a? К примеру надо чтобы приложение получая из запроса параметр logger=file внедряло FileLogger.
Vadim
Андрей
Egor
Можно заюзать сервис локатор https://symfony.com/doc/current/service_container/service_subscribers_locators.html
Vadim
как это должно работать? Надо же как то DI настроить
class FileLogger implements LoggerSupporter
{
public function __construct(YourFileLogger $logger)
{
$this->logger = $logger;
}
public function supports(string $loggerPlace)
{
return 'file' === $loggerPlace;
}
public function log($level, $context)
{
$this->logger->log($level, $context);
}
}
class AnotherLogger implements LoggerSupporter {}
FileLogger: ~
AnotherLogger: ~
LoggerSupporter:
- '@FileLogger'
- '@AnotherLogger'
class ChainLogger
{
public function __construct(LoggerSupporter ...$loggers)
{
$this->loggers = $loggers;
}
public function log(string $loggerPlace, $context)
{
foreach($this->loggers as $logger) {
if ($logger->supports($loggerPlace) {
$logger->log(...);
}
}
}
}
Андрей
Оба способа отличные👍, спасибо
Vadim
Инжектить контейнер - это плохой способ.
Aleksandr
Alexander
А почему плохой способ?
Vadim
А почему плохой способ?
https://stackoverflow.com/questions/23931321/in-symfony2-why-is-it-a-bad-idea-to-inject-the-service-container-rather-than-i/26144509
Alexander
Спасибо, почитаю)
Vadim
Да, но ты назвал внедрение контейнера отличным способом. Ладно, проехали.
Vadim
Никто и не говорит, что ВСЕ зависимости надо совать исключительно в конструктор.
Aleksandr
а что ты пытаешься сделать?
Vadim
ContainerInterface можно инжектить как в конструктор, так и в метод, не в этом проблема. Проблема в том, что ты инжектишь целый контейнер, чтобы вытянуть оттуда один единственный сервис.
Alexander
Понял, спасибо за объяснение)
Vadim
Ну и с внедрением конкретных сервисов легче управлять зависимостями. В коде в идеале не должно быть ни new Something(), ни $this->container->get(). Все должно приходить снаружи и все сигнатуры должны быть явными и легкозаменяемыми. Open/Close принцип.
Aleksandr
без конкретного примера - это все так себе
Egor
Egor
Фактически LoggerSupporter это тот же сервис контейер, только из него логгеры получаются не методом get, а перебором и проверкой в методе support
Андрей
Aleksandr
речь про new была именно в контексте сервиса
Egor
Vadim
Да, но стоит кому-то убрать implements ServiceSubscriberInterface, и все, у нас в конструкторе целый контейнер.
artem
всем привет) решил поразбиратся с message bus/command bus. у меня есть два хэндлера:
App\MessageHandler\CreateUserMessageHandler:
tags: [{ name: messenger.message_handler, bus: command.bus }]
App\MessageHandler\UpdateUserMessageHandler:
tags: [{ name: messenger.message_handler, bus: command.bus }]
и вот хочу чтобы сначала залетало в первый хэндлер. там проверка на айди, если его нет то передавало дальше по цепочке. мб кто ткнет в доку?
artem
https://gist.github.com/artemzakholodilo/2b43594f262ba2ab07757add892f2a1c
методы мутации для вызова хендлеров
Vadim
artem
https://symfony.com/doc/current/messenger.html#middleware
это?
Maks
ага
Maks
https://github.com/symfony/messenger/tree/master/Stamp
Maks
и вот сюда посмотри, там тоже что то похожее есть
Maks
но именно под твою задачу я хз)
Maks
кмк тут не нужно два хендлера, тут нужна мидлвара которая чекнет ид и прокинет в бас
Игорь
Кто-нибудь знает плагин для шторма, где можно качественно ревьюить PR из битбакета?
Anonymous
Так сделай
Anonymous
В чем проблема?
Anonymous
Ага
Igors
а незнающему — на сколько часов максимум?
Alexander
Приветы.
Подскажите кто сталкивается с rest full api, при GET параметрах использовать payload для передачи данных плохая практика?
Суть вопроса в том, что есть метод api/v1/docs, и в payload может прийти offset, limit, usersId. Но при GET запросе получить payload никак не получается(что ожидаемо,$_GET не видит payload), если только включить его в адресную строку или же вместо GET использовать OPTIONS метод.
Dmitry
Dmitriy
Имхо
Dmitriy
для начало неплохо было бы разобраться чем GET от POST отличается
Maks
Что то я не пойму))) Зенд все чтоле? Или он теперь Ламинас?)
Maks
кто то кратко может объяснить?))
Andrey
Ламинас, у них же ссылка на него была с объяснением
Maks
их бложик я читал, я думал может кто инсайтами владеет, кто кому там шекелей недосыпал)
artem
А зенд пыхой занимается или але?
Maks
интерпрайзного легаси на зф как грязи)
Maks
да и компоненты их разползлись
artem
Ну раз так заговорили. Чье кунг-фу бьёт zend certificate в php?
jenia
Это самое большое сооб щество symfony на русском?
Кирилл
какая разница - самое - не самое?
Юрий
в телеге больше нет
Andrey
Есть
Maks
И оно токсичное) тут уютней
Anonymous
)))))
artem
Взял и мое сообщество оскорбил)))
Anonymous
Какое твое ?