Size: a a a

2020 March 08

T🐜

The Ant 🐜 in Yii Framework 3
Да норм, лишь бы не корячить объект в конфиге как это в уии 2 щас
типа:
$c->setSingleton('HQ\ParsingModule\YoutubeDl\YoutubeDlAdapter', [
   '__construct()' => [
       yii\di\Instance::of('YoutubeDl\YoutubeDl'), // это алиас в контекнере
       yii\di\Instance::of('Psr\EventDispatcher\EventDispatcherInterface'), // это тоже
       [ // параметор конфигом
           'pythonPath' => '/usr/bin/python3.7'
       ]
   ]
]);
дичь ппц
источник

DS

Dmitriy S in Yii Framework 3
The Ant 🐜
Да норм, лишь бы не корячить объект в конфиге как это в уии 2 щас
типа:
$c->setSingleton('HQ\ParsingModule\YoutubeDl\YoutubeDlAdapter', [
   '__construct()' => [
       yii\di\Instance::of('YoutubeDl\YoutubeDl'), // это алиас в контекнере
       yii\di\Instance::of('Psr\EventDispatcher\EventDispatcherInterface'), // это тоже
       [ // параметор конфигом
           'pythonPath' => '/usr/bin/python3.7'
       ]
   ]
]);
дичь ппц
Не, тут алисы можно прямо в конфиге конструктора задавать
источник

Д

Дмитрий in Yii Framework 3
Алексей R
Кстати, Дмитрий, может на досуге подумаешь (или это уже очевидно в плане реализации).. для рр было бы неплохо иметь контейнер на реквест, который можно после отправки данных обнулить
Нужен отдельный обнуляемый контейнер монтировать к обычному с помощью композитного. Чтобы после реквеста сразу дропать весь инстанс без раздумья
источник

Д

Дмитрий in Yii Framework 3
Вообще это норм - обнуляемый контейнер. Но есть подозрения, что это уже не "сервисы" в рамках контейнера)
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
Нужен отдельный обнуляемый контейнер монтировать к обычному с помощью композитного. Чтобы после реквеста сразу дропать весь инстанс без раздумья
Да, но нет такой фичи в композитном контейнере, чтобы можно было дропнуть какой-то контейнер из него.
источник

Д

Дмитрий in Yii Framework 3
Но тот же дебаггер, например, при ините генерит уникальный ИД. Тоже сервис, но стейтабл
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Да, но нет такой фичи в композитном контейнере, чтобы можно было дропнуть какой-то контейнер из него.
Ты любишь добавлять обратно несовместимые изменения, вот и добавишь😄
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
Вообще это норм - обнуляемый контейнер. Но есть подозрения, что это уже не "сервисы" в рамках контейнера)
Я бы все же предложил для этих целей использовать контейнер без синглтонов, медленнее, но работать будет однозначно и надежно.
источник

DS

Dmitriy S in Yii Framework 3
Не так уж много там таких зависимостей зависмых от запроса.
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Я бы все же предложил для этих целей использовать контейнер без синглтонов, медленнее, но работать будет однозначно и надежно.
А как доставать уже готовые зависимости?
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
А как доставать уже готовые зависимости?
Заново создвать каждый раз, там они в основном несложные.
источник

DS

Dmitriy S in Yii Framework 3
Ты же все равно их будешь заново создавать, если контейнер дропнешь
источник

DS

Dmitriy S in Yii Framework 3
Хотя... при повторном запросе наверное с дропнутым контейнером все же будет быстрее
источник

DS

Dmitriy S in Yii Framework 3
Надо подумать
источник

DS

Dmitriy S in Yii Framework 3
В принципе можно в контейнер добавить условные зависмости, которые зависят от контекста. Если контекст тот же, то зависимость берется из кеша, если другой, то генерится заново.
источник
2020 March 09

Д

Дмитрий in Yii Framework 3
Dmitriy S
В принципе можно в контейнер добавить условные зависмости, которые зависят от контекста. Если контекст тот же, то зависимость берется из кеша, если другой, то генерится заново.
Вот я за.
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
Вот я за.
Вопрос в том, как доствать свежий контекст, если в самом контейнере все кешируется.
источник

DS

Dmitriy S in Yii Framework 3
По сути я вижу только одну возможность, это сеттить риквест в контейнере уже где-то после вызова $middlewareDispatcher->dispatch($request);
источник

А

Алексей R in Yii Framework 3
Блин не надо мудрить, просто вручную либо из композитного убирать, либо сам контейнер обнулять
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Я бы все же предложил для этих целей использовать контейнер без синглтонов, медленнее, но работать будет однозначно и надежно.
Он не подходит для этих целей
источник