Size: a a a

2021 March 19

Ш

Шурик in symfony
Павел Г.
Ну там да, можно поставить autowire в настройках. Но про паблик не понятно. Как в симфе доступны сервисы без установки public=true
паблик - он позволяет получить через container->get
если не хочешь юзать get, а чтоб в контроллер/сервис прилетел инстанс - тебе нужно заавтовайрить и то, что хочешь получить и то, где хочешь получить
источник

Ш

Шурик in symfony
Павел Г.
а мы этого не ставим вручную
там своя магия для контроллеров, но суть та же
чтоб автовайр работал - класс должен быть в контейнере либо автовайром, либо руками прописать какие сервисы в него инжектить
источник

ПГ

Павел Г. in symfony
Шурик
там своя магия для контроллеров, но суть та же
чтоб автовайр работал - класс должен быть в контейнере либо автовайром, либо руками прописать какие сервисы в него инжектить
Да вот я про магию и уточняю :)
источник

AK

Anton K. in symfony
Шурик
паблик - он позволяет получить через container->get
если не хочешь юзать get, а чтоб в контроллер/сервис прилетел инстанс - тебе нужно заавтовайрить и то, что хочешь получить и то, где хочешь получить
это все для performance сделано? или какие-то еще цели преследовали?
источник

Ш

Шурик in symfony
Anton K.
это все для performance сделано? или какие-то еще цели преследовали?
они преследовали те же цели, что и ты)) уйти от ->get в пользу автовайра)
источник

ПГ

Павел Г. in symfony
Anton K.
это все для performance сделано? или какие-то еще цели преследовали?
Ничего не сделано, я просто поднял symfony di в голом index.php и задался вопрсоом как тащить сервисы из него если не ставить все в паблик
источник

DT

Dmitriy Tkachenko in symfony
Anton K.
это все для performance сделано? или какие-то еще цели преследовали?
чтобы использовать Dependency Injection вместо Service Locator
источник

AK

Anton K. in symfony
Павел Г.
Ничего не сделано, я просто поднял symfony di в голом index.php и задался вопрсоом как тащить сервисы из него если не ставить все в паблик
нене, я именно про то, что они жестко разделили сервисы на public/private и запретили работать напрямую с контейнером
источник

ПГ

Павел Г. in symfony
Anton K.
нене, я именно про то, что они жестко разделили сервисы на public/private и запретили работать напрямую с контейнером
это я хз
источник

AK

Anton K. in symfony
Dmitriy Tkachenko
чтобы использовать Dependency Injection вместо Service Locator
а с практической точки зрения что это дает? или просто привели в порядок свой DI?
источник

DT

Dmitriy Tkachenko in symfony
Anton K.
нене, я именно про то, что они жестко разделили сервисы на public/private и запретили работать напрямую с контейнером
чтобы люди не плодили неочевидных завязок на зависимостях, а зависимости были описаны в сигнатуре конструктора класса
источник

AK

Anton K. in symfony
у меня есть fat event listeners, я там прям с контейнером работаю, сейчас надо будет инжектить 100500 зависимостей или дробить листенеры
источник

DT

Dmitriy Tkachenko in symfony
сложно сказать
источник

DT

Dmitriy Tkachenko in symfony
посмотри на CompilerPass и всякие теги
источник

DT

Dmitriy Tkachenko in symfony
не думаю что эта проблема нерешаема
источник

AK

Anton K. in symfony
а еще кстати вопрос в тему
источник

AK

Anton K. in symfony
раньше можно было получать в контроллере
$logger = $this->get('monolog.logger.my_channel')

а как сейчас заинжектить в контроллер именно нужный логгер для канала?
источник

DT

Dmitriy Tkachenko in symfony
Anton K.
у меня есть fat event listeners, я там прям с контейнером работаю, сейчас надо будет инжектить 100500 зависимостей или дробить листенеры
а какая разница откуда эти 100500 зависимостей получать, из конструктора или сервис локатора? факт-то остается фактом. То что лень описывать? Так это хороший урок почему так делать ненадо, и лишнее напоминание что с этим нужно что-то делать
источник

DT

Dmitriy Tkachenko in symfony
Anton K.
раньше можно было получать в контроллере
$logger = $this->get('monolog.logger.my_channel')

а как сейчас заинжектить в контроллер именно нужный логгер для канала?
в services.yaml указываешь тот, который тебе нужен, или если не указан, он берет дефолтный
источник

AK

Anton K. in symfony
Dmitriy Tkachenko
а какая разница откуда эти 100500 зависимостей получать, из конструктора или сервис локатора? факт-то остается фактом. То что лень описывать? Так это хороший урок почему так делать ненадо, и лишнее напоминание что с этим нужно что-то делать
ну да, скорее дело в лени, чтобы не париться описыванием
источник