Aleksandr
@kugaudo 😁
artem
А вы умеете делать" ты лошара, ты сдохнешь" ну итд к тем кто на zce идет?
artem
В общем, буду благодарен за ссылку на yellow pages и php7 сертифика
artem
Нас в Днепре пока с десяток
artem
В Украине если сотня будет то мы в Кыргызстане
Aleksandr
по-моему не все понимают, о чем ты говоришь)
artem
Ладно, у меня есть 2 месяца
artem
по-моему не все понимают, о чем ты говоришь)
Кто в теме. У них php5 очень жесткое как и 4
Igors
@Cawa87 я для прикола вбил в поиск симфони а тут такое 😅
Aleksandr
бывает)
Igors
@schiller2k аннотации-то ни при чем ) вы ж скорее всего хотите аннотации для валидатора, а каскадный ремув с этим вообще не связан - он происходит после валидации (если вообще происходит)
Андрей
Привет всем, может кто подскажет как можно без if и switch конструкций, получить определенный экземпляр класса по параметру который приходить из Request`a? К примеру надо чтобы приложение получая из запроса параметр logger=file внедряло FileLogger.
Андрей
interface LoggerSupporter { public function supports(string $loggerPlace); public function log($level, $context); }
как это должно работать? Надо же как то DI настроить
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
Инжектить контейнер - это плохой способ.
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
Да, но ты назвал внедрение контейнера отличным способом. Ладно, проехали.
Alexander
https://stackoverflow.com/questions/23931321/in-symfony2-why-is-it-a-bad-idea-to-inject-the-service-container-rather-than-i/26144509
Хороший коммент, хорошие плюсы наведены в пользу за. Но есть же минус подхода пихать в конструктор сервисы, как минимум в контролере public function test( ApiService $service). Тогда вызов сервиса нужно делать внутри метода контроллера передавая все данные в конструктор прежде чем начать с ним работать. Или это норма в определении сервиса в методе передавая нужные параметры? Речь о хороших практиках, хочется понимать как лучше делать)
Vadim
Никто и не говорит, что ВСЕ зависимости надо совать исключительно в конструктор.
Aleksandr
а что ты пытаешься сделать?
Vadim
ContainerInterface можно инжектить как в конструктор, так и в метод, не в этом проблема. Проблема в том, что ты инжектишь целый контейнер, чтобы вытянуть оттуда один единственный сервис.
Alexander
а что ты пытаешься сделать?
Это лишь пример, что бы понять как лучше и правильнее)
Alexander
Понял, спасибо за объяснение)
Vadim
Ну и с внедрением конкретных сервисов легче управлять зависимостями. В коде в идеале не должно быть ни new Something(), ни $this->container->get(). Все должно приходить снаружи и все сигнатуры должны быть явными и легкозаменяемыми. Open/Close принцип.
Aleksandr
без конкретного примера - это все так себе
Egor
Фактически LoggerSupporter это тот же сервис контейер, только из него логгеры получаются не методом get, а перебором и проверкой в методе support
Aleksandr
речь про new была именно в контексте сервиса
Vadim
Это не совсем так. Инжектится контейнер только с нужными сервисами, теми же, что ты предлагаешь инжектить в LoggerSupporter.
Все верно, только в случае необходимости использовать еще какой-то логгер, нам надо будет изменять код, добавив этот сервис в getSubscribedServices. А в этом случае мы добавляем новый сервис, конфигурируем di, все.
Vadim
речь про new была именно в контексте сервиса
Да. Response разный для всех контроллеров, а сервисы по умолчанию статичны в своей конфигурации.
Vadim
Да, но стоит кому-то убрать implements ServiceSubscriberInterface, и все, у нас в конструкторе целый контейнер.
Egor
Да, но стоит кому-то убрать implements ServiceSubscriberInterface, и все, у нас в конструкторе целый контейнер.
У нас в конструкторе будет то, что указано в конфигурации di. Автовайринг вроде весь контейнер не станет инжектить, надо проверить.
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 методы мутации для вызова хендлеров
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 метод.
Dmitrij
Приветы. Подскажите кто сталкивается с rest full api, при GET параметрах использовать payload для передачи данных плохая практика? Суть вопроса в том, что есть метод api/v1/docs, и в payload может прийти offset, limit, usersId. Но при GET запросе получить payload никак не получается(что ожидаемо,$_GET не видит payload), если только включить его в адресную строку или же вместо GET использовать OPTIONS метод.
вот пример того, как в гет запихнули всё что ты хочешь https://www.iaai.com/ru-ru/vehiclesearch/searchdetails?quickfilters=&url=GG/SC8A8WWNiMrUWNHTjeA6j2gYbT3hhuLNueWk3DEzZEFLsYvYwO1eai3aJjUqj+MSnpTO3xdd+PYW3RC4mIFVhS/jBcyYJakcJHkloYCM+f/Ukpqz87q7eUOHqkA499IHkl9+aqYNsvk4/9K6YNWy+AXhWqknF8BoyyG7vgsgGn+fOkrKqbJrKC3Nocj6o/QhYYUiDtoi5Hv341j28ciXKM+O6Bd4Q6/vlrzwJKQ2HnublZvbyKG1X7eeEoQwnvt55iuhQWB1REjacPFA8nSh7uWXcmrZ8paIr53ZLChqASTUsA53+a+MaWfzWU+bV2gwmpCgZuAO/EhPcbwRGsZXpKfA3lEXuYa5kv9I+OkauOpc8QrVUzEgqEN3mxMt67kv/3yk4Rd0zD3k16JKxGhmpkBnC2D7jWCA4FSiBD/nXNOChhJX7D/6VMKifwOlc6Dt0uZP2yYabMNR0Azq4kgJsMieLeZzjzz3iEwlDTX9mIiVoJP/osfxntZooVbPZtcWAPXBe1hrcZJzCxmCq1dyWNViTbWJKjZS4ARK1EeU1nRlMsXq+8vIuLh+tINIAPmS/JZr7K1olR8Wh/8YnKBXzYPnwkoIWJsGe2J3r21yyjn0A4ATe9dEgXWUgjVcLjoMW3K6THMdyTJ/HMkpeG0WMGr64yMOS7ojsc14TFV4m7hl8afokpDMDPARaJ+7kihgXbita/2RC3VOm3ahihtL3wQK4bETKMEv07flbArVXT6vZ9qyf12vNJOe0TyDsq1BH4aZ8j9/5/+fXLgAk2MoYK3hz0Hjo1hQOPTJKuBA=
Dmitriy
Имхо
Dmitriy
для начало неплохо было бы разобраться чем GET от POST отличается
Maks
Что то я не пойму))) Зенд все чтоле? Или он теперь Ламинас?)
Maks
кто то кратко может объяснить?))
Andrey
Ламинас, у них же ссылка на него была с объяснением
Maks
их бложик я читал, я думал может кто инсайтами владеет, кто кому там шекелей недосыпал)
artem
А зенд пыхой занимается или але?
artem
Что то я не пойму))) Зенд все чтоле? Или он теперь Ламинас?)
А кто-то ещё пользуется zf? Я думал он умер в десятом. И да, я знаю про все остальные версии кроме первой. Вот интересно куда люди прикрепят сертификат zf
Maks
интерпрайзного легаси на зф как грязи)
Maks
да и компоненты их разползлись
artem
да и компоненты их разползлись
Ну я как раз из зенда всем рекомендую на симфу. Немножко похожи
artem
Ну раз так заговорили. Чье кунг-фу бьёт zend certificate в php?
jenia
Это самое большое сооб щество symfony на русском?
Кирилл
какая разница - самое - не самое?
Юрий
в телеге больше нет
Andrey
Есть
Maks
И оно токсичное) тут уютней
Anonymous
)))))
artem
Взял и мое сообщество оскорбил)))
Anonymous
Какое твое ?