Size: a a a

2020 October 25

МФ

Максим Федоров... in symfony
Ну и вы можете в контроллер явно передать аргументы

Передавайте сервис нужный и все
источник

ПГ

Павел Г. in symfony
Плюс это же по большей части замена анотациям.
источник

Р

Руслан in symfony
Павел Г.
Приветствую. Есть ли какая либо возможность в разных экшенах контроллеров подгружать разные реализации интерфейсов сервисов?  Если да, то в какую сторону копать, что-то не могу нагуглить, или гуглю неверно.
App\FooInterface $foo: '@app.foo'
App\BarInterface $bar: '@app.bar'
источник

ИГ

Иван Ганцев... in symfony
Павел Г.
Приветствую. Есть ли какая либо возможность в разных экшенах контроллеров подгружать разные реализации интерфейсов сервисов?  Если да, то в какую сторону копать, что-то не могу нагуглить, или гуглю неверно.
Кажется просто в конфиге di описать передаваемые инстансы в аргументах
источник

ПГ

Павел Г. in symfony
Максим Федоров
Ну и вы можете в контроллер явно передать аргументы

Передавайте сервис нужный и все
Хм, не подумал )))  спасибо )  Просто как-то общался про Ларавел и их DI (у них там можно), и типо сказали что в Симфони все так же можно.
источник

ПГ

Павел Г. in symfony
Иван Ганцев
Кажется просто в конфиге di описать передаваемые инстансы в аргументах
Инстансы чего?
Мне в экшене "А", нужен интерсфейс "Б", который будет релизован как сервис "С".
А в экшене  "АА", нужен интерфейс "Б", который будет реализован как сервис "Д"
источник

VS

Vyacheslav Startsev in symfony
источник

ИГ

Иван Ганцев... in symfony
Павел Г.
Инстансы чего?
Мне в экшене "А", нужен интерсфейс "Б", который будет релизован как сервис "С".
А в экшене  "АА", нужен интерфейс "Б", который будет реализован как сервис "Д"
Инстансы интерфейса б. Выше уже правильный пример привели. Неправильно выразился, реализации имел ввиду конечно же
источник

ПГ

Павел Г. in symfony
Спасибо, как решение очень даже ок. Надо будет правда разбивать для этого уже готовые контроллеры на несколько. Думал есть вариант прописать через конфиг.
источник

D

Dmitry in symfony
Павел Г.
Инстансы чего?
Мне в экшене "А", нужен интерсфейс "Б", который будет релизован как сервис "С".
А в экшене  "АА", нужен интерфейс "Б", который будет реализован как сервис "Д"
function actionA(SomeInterface $a)
function actionB(SomeInterface $a)

services.yaml

SomeController:
  calls:
     - method: actionA
        arguments: '@SomeInterfaceImplementationC'
источник

D

Dmitry in symfony
источник

ПГ

Павел Г. in symfony
Dmitry
function actionA(SomeInterface $a)
function actionB(SomeInterface $a)

services.yaml

SomeController:
  calls:
     - method: actionA
        arguments: '@SomeInterfaceImplementationC'
А вы использовали такой вариант? Просто это вроде как вызов метода после создания сервиса. Тут же немного другой сценарий.
источник

D

Dmitry in symfony
нет, просто даю идею как реализовать
в крайнем случае сделайте 100500 алиасов на интерфейсы и внедряйте
источник

ПГ

Павел Г. in symfony
Dmitry
нет, просто даю идею как реализовать
в крайнем случае сделайте 100500 алиасов на интерфейсы и внедряйте
Типо через $contener->get('alias') вместо автовайринга?
источник

ПГ

Павел Г. in symfony
Или как выше предложили много дочерних интерфейсов.
Понятно, что варианты есть. Хотелось бы как это реалиуют верно :)
источник

D

Dmitry in symfony
Павел Г.
Типо через $contener->get('alias') вместо автовайринга?
Ну это совсем крайний случай :)
источник

ПГ

Павел Г. in symfony
Dmitry
Ну это совсем крайний случай :)
ок :)
источник

D

Dmitry in symfony
Я бы сначала попробовал бы свой вариант с конфигом. Точно знаю что конфиг помогает разные реализации писать в конструкторы. Так почему бы ему не начать работать с методами
источник

AD

Andrey Dembitskyi in symfony
Павел Г.
Приветствую. Есть ли какая либо возможность в разных экшенах контроллеров подгружать разные реализации интерфейсов сервисов?  Если да, то в какую сторону копать, что-то не могу нагуглить, или гуглю неверно.
источник

ПГ

Павел Г. in symfony
Это как я понимаю прокинет в конструктор, и отлично подходит к совету @vyacheslav_startsev  , но не подойдет когда автовайринг в методах.
источник