Size: a a a

2021 July 16

✨Basic_Instinct✨ in symfony
источник

AS

Alexander Semeko in symfony
Нашел через телегу
источник

ПГ

Павел Г. in symfony
Приветствую. Подскажите плиз с DI.
Есть некий вендоровский класс, создание которого можно настроить через фабрику (вендоровскую).
Двум моим классам нужны разные сконфигурированные классы. Как это лучше оформить? Просто если фабрику в DI передавать, как то не очень, мне кажется.   Создавать свои фабричные классы (в которых уже будет работа с вендоровской) под каждый такой "конфиг" и их передавать в качестве зависимости? Просто factory к arguments вроде как не передать, если использовать конфиг DI
источник

R

Roman in symfony
я за 2 вариант :)
источник

ПГ

Павел Г. in symfony
Спасибо :)
источник

VM

Volodymyr Melko in symfony
https://symfony.com/doc/current/service_container/factories.html#passing-arguments-to-the-factory-method

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

ПГ

Павел Г. in symfony
Получается сервисы должны наследовать вендоровский класс. Думал этот вариант, но наследование как то не очень
источник

VM

Volodymyr Melko in symfony
шта? зачем наследовать вендорский класс?
источник

A

Anthony in symfony
Для веселья! 🤣
источник

ПГ

Павел Г. in symfony
У меня есть два класса , допустим, с конструкторами :
constructor(Mailer)
constructor(Mailer)

Но это два Mailer с разными конфигами.
источник

ПГ

Павел Г. in symfony
ЧТобы сделать этос  помощью фабрики, надо значит делать
constructor(MailerOne)
constructor(MailerTwo)
И эти два класса создавать по инструкции выше. Но они должны быть наследниками Mailer. Чтобы иметь такой же функционал.
источник

ПГ

Павел Г. in symfony
Либо фабриками...
источник

VM

Volodymyr Melko in symfony
у тебя есть 2 твоих класса
class MyClass1 {
  public function __construct(VendorClass $withArg1) {}
}

class MyClass2 {
  public function __construct(VendorClass $withArg2) {}
}


ты регаешь в контейнере 2 сервиса
VendorClass $withArg1: '@app.vendor_class.withArg1'
VendorClass $withArg2: '@app.vendor_class.withArg2'

app.vendor_class.withArg1:
 class: VendorClass
 factory: VendorFactory
 arguments: args1

app.vendor_class.withArg2:
 class: VendorClass
 factory: VendorFactory
 arguments: args2


все, автовайринг работает и в каждый твой класс прокинет нужную имплементацию
источник

VM

Volodymyr Melko in symfony
все же есть в доке
источник

ПГ

Павел Г. in symfony
Спасибо! Про альясы забыл)
источник

АЯ

Андрей Ява in symfony
Это давно уже не так
источник

КД

Кирилл Добров... in symfony
Кто работал с deeplink у вас есть примеры как они должны выглядить для разных сервесов (vk, facebook. telegram)
Вот например с телеграмом я понял (Пример "tg://resolve?domain=supchicc") но как сделать такое для других сервесов ?
источник

AM

Alexey M. in symfony
Очень много статей в интернете
источник

AM

Alexey M. in symfony
И кстати, вот твой пример совсем не комильфо, т.к. если у меня нет на пк телеги, то твоя ссылка не откроется
источник

КД

Кирилл Добров... in symfony
Статей с примерами для нужных сервисом не много (
источник