Konstantin
Юра
Кому нет применения? Локатору?
Konstantin
ага
Юра
Ну как нет. Я вот применяю ) довольно часто теперь буду
Konstantin
ну то есть я понимаю откуда оно растет: ты в конфиге указываешь mailer_impl: gmail а потом по этому gmail тебе надо достать App\Foo\GmailMailer
Юра
Не
Konstantin
раньше ты этот локатор делал у себя в сервисе, в который приходит таггед итератор
Юра
Мне надо было доставать сервисы по айди
Konstantin
а зачем?
Konstantin
если они у тебя и так есть в конструкторе
Юра
В конутрсторе у меня теперь локатор
Konstantin
так, а в нем чо?
Konstantin
сервисы по тэгу, да?
Юра
Сервисы которые протегированы
Юра
Были бы дженерики, чтобы указать какие именно сервисы в локаторе, вообще круто было бы
Konstantin
как ты понимаешь какой из инстансов тебе нужен?
Konstantin
не может же быть такого, что надо тупо все обойти?
Konstantin
ну то есть тогда тебе нужен таггед итератор и итерабл как тайпхинт массива сервисов
Юра
в БД лежит класс сервиса
Konstantin
плохо)
The Ant
в БД лежит класс сервиса
Такое решается стратегиями и реестром
Павел
А все. Я узнал про tagged_locator. Симфа как всегда лучшая
Не знаю как там сейчас реализовано, но думаю шибко что-то не поменялось (я про локатор) - абстрактный контроллер.
Konstantin
зачем-то было нечего делать ночью и я решил повспоминать как писать бандлы для симфони. если кому-то интересно как работать с конфигом, например, то можно на этом игрушечном бандле посмотреть
Konstantin
https://github.com/sc0rp10/yandex-smartcaptcha-bundle
Gleb
https://github.com/sc0rp10/yandex-smartcaptcha-bundle
А можно подсказать зачем вот такой пустой аттрибут навешен? #[\Attribute] class YandexSmartCaptcha extends Constraint
Konstantin
чтобы можно было в твоей форм-модели сделать так https://cdn.weblab.pro/r54z8.png
Gleb
Это мы задаем валидацию или просто тайп-хинтинг получается?
Konstantin
это мы говорим "провалидируй это поле таким-то валидатором"
Gleb
Спасибо ещё раз! Надо будет поразбираться с этой темой. Пока что-то туплю.
Юра
Спасибо, не знал о такой фиче.
Ты не знал про аттрибуты?
Юра
Самое время установить пхп 8 )
Gleb
Ты не знал про аттрибуты?
В целом про аттрибуты я знаю. Не о всех возможностях их применения я знаю. У меня опыта то в ООП и симфе 1/3 учебного проекта)
Gleb
Яжпроцедурщик со стажем :(
Юра
Ну вообщем это аттрибут который делает твой класс аттрибутом )
Юра
Как @Annotation
Gleb
Вопрос то скорее не в том, что аттрибуты или аннотации, а в том, как они могут быть использованы. А ещё точнее похоже надо повторить рефлексию, похоже будут новые инсайты)
Юра
Много где использованы
Юра
Это как метки. Их можно и к методам и к классам и аргументам применять
Юра
А дальше как эти метки использовать это чисто фантазия разработчиков
Юра
Например раньше в симфе чтобы получить project_root тебе надо было как-то заинджектить его в класс. Раньше приходилось инджектить ParameterBag и доставать от туда параметр kernel.project_dir. Либо руками инджектить этот параметр. Сейчас ты можешь просто в конструкторе принять строку и написать что подставь сюда такой-то параметр
Юра
Удобно же
Konstantin
кстати, там еще не завезли такое? public function __construct(#[Parameter('foo.bar')] private readonly string $foo_bar) {}
Юра
Завезли
Konstantin
заел services.yaml, в спринге лет 10 назад догадались это сделать
Konstantin
рил? а есть ссылка?
Юра
https://symfony.com/blog/new-in-symfony-6-1-service-autowiring-attributes#:~:text=In%20Symfony%206.1%20we're,the%20resolution%20of%20most%20dependencies.
Konstantin
ого, красота какая (нет)
Юра
Крутая тема
Konstantin
честно говоря, могли бы не плодить универсальный аттрибут для всего, а сделать Alias, Parameter, Expression
Gleb
😅 раньше ты брал версию 5.3 или 5.4 и учил, успевал освоить, даже не работая программистом. а сейчас взялся за ООП и современные версии пхп и фреймворков и не успеваешь. Только немного раскурил 5 ветку симфы и 8.0 пхп, как они никидали 6.1 и 8.1. 😅
Юра
Велком ту айти
Юра
А прикинь флюклстекам как
Юра
Пока учил новую симфу, вышел реакт 15
Юра
И так бесконечно
Юра
Я три года проект не трогал на проде, сделал npm install и тупо почти все кругом deprecated
Юра
Еле собрал фронт в итоге
Gleb
На самом деле прощё) я застревал на старых версиях пхп, ибо у меня мои проекты ещё на 5.6 (они уже не стоят того, что бы переписывать на 7) И только с прошлого года я пошёл в ООП/фреймворки и начал догонять версии.
Юра
А симфа вообще козлы
Юра
Убили свой flex.symfony домен
Юра
Убили webpack encore, точнее перенесли
Юра
В итоге даже просто composer install не гарантирует что все установится без ошибок
Gleb
Ну норм) бэк то 00-е) когда депенденси хелл решался вручную)
Юра
Короче пока проект дописали он уже устаревает
Юра
Надо постоянно в процессе обновляться
Юра
Я же говорю у нас как. Альфа версия, бета, релиз кандидат, легаси, начинай с нуля
Gleb
Ну в этом плане кстати симфа ещё кажется более божеская чем ларка, у тех вообще какой-то безумно быстрый цикл обновлений.
Юра
Симфа не сильно меняется да
Юра
Уже
Юра
Раньше сильнее
Юра
Ну зато можно просто пропустить кучу версий и сражу учить последнее
Юра
А там много всего интересного и полезного
Gleb
Ну зато можно просто пропустить кучу версий и сражу учить последнее
😂 ну да, ну да... в начале года, когда искал работу - Ларка 6-7, Симфа 4.4-5.2 в ходу была преимущественно) Вот и думай что учить, а что уже нет.
Юра
Учи всеееее постоянно )
Юра
Зато Альцгеймер не страшен
Gleb
А одни ребята с 3 симфы только на 4.0 перешли в конце прошлого года.
Юра
Будешь до 80 лет учить)
Юра
Или забудешь все слова и родных, зато будешь помнить в какой версии симфы появились аттрибуты
Юра
Вот блин. Взять докторов
Konstantin
https://symfony.com/blog/new-in-symfony-6-1-service-autowiring-attributes#:~:text=In%20Symfony%206.1%20we're,the%20resolution%20of%20most%20dependencies.
конкретно это, конечно, плохо протеканием симфони в твои сервисы. то есть они начинают явно импортить Symfony\Component\DependencyInjection