Size: a a a

2020 August 16

AP

Arman Poghosyan in Yii Framework 3
С подходом ResetableInterface тоже не знаком, так что не сравниваю
источник

T

TradersVE in Yii Framework 3
Arman Poghosyan
То есть, там как-то можно было в Service Provider-ах задавать, должны ли объекты, которые дает провайдер удаляться и заново делаться
Laravel uses locator hidden behind facades and service providers, please do not bring yii3.
источник

AP

Arman Poghosyan in Yii Framework 3
TradersVE
Laravel uses locator hidden behind facades and service providers, please do not bring yii3.
I'm not going to recommend laravel facades for Yii3))) Also laravel allows develop without using dacades, only through di
источник

DS

Dmitriy S in Yii Framework 3
Arman Poghosyan
П.С. Я не в курсе возможно ли такое в нашем DI, вообще код не смотрел
Такое в пхп невозможно в принципе, поскольку вместо объекта передается указатель, который будет указывать на старый объект независимо от того, что сейчас в контейнере
источник

AP

Arman Poghosyan in Yii Framework 3
Good laravel developers avoid facades
источник

T

TradersVE in Yii Framework 3
Arman Poghosyan
I'm not going to recommend laravel facades for Yii3))) Also laravel allows develop without using dacades, only through di
but if app is a static container within the functions declared in the composer. 😂😂
источник

DS

Dmitriy S in Yii Framework 3
Было бы идеальным если бы в каком-нибудт пхп 9 сделали бы встроенный контейнер на си со всеми фишками для штук вроде рр
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Надо найти минусы этого подхода, вы их тогда обрисовывали, но я их не помню. Помню, что завернули эту тему
Завернули, прежде всего, потому что не доделали.
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Еще вариант юзать слабые ссылки и трейт с методом ensureInstance($this->myService, MyService::class), но программить станет сложнее
В коде не должно быть такого...
источник

AP

Arman Poghosyan in Yii Framework 3
Dmitriy S
Такое в пхп невозможно в принципе, поскольку вместо объекта передается указатель, который будет указывать на старый объект независимо от того, что сейчас в контейнере
Точно, тут же правильных деструкторов же нет, которые runtime вызовет, и старый объеект из за своей зависимости полюбому залипнет. Хмм... Ща попробую найти как там и что делали...
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Есть еще третий подход, я его предлагал сегодня для вьюхи. Полученный черз di объекты со стейтом надо клонировать, то есть в конструторе viewRenderer делаем $this->view = clone $view;
Ну, кстати, мб и норм.
источник

AM

Alexander Makarov in Yii Framework 3
Но не для всего...
источник

AM

Alexander Makarov in Yii Framework 3
Опционально.
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Было бы идеальным если бы в каком-нибудт пхп 9 сделали бы встроенный контейнер на си со всеми фишками для штук вроде рр
Нет, этого не будет.
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Еще вариант юзать слабые ссылки и трейт с методом ensureInstance($this->myService, MyService::class), но программить станет сложнее
слабые ссылки без этого трейта и так норм
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Ну, кстати, мб и норм.
Ну понятно что только для стейтовых объектов, проблема только в том, что если где пропустил, то все, хана, изменится объект в контейнер. Возможно это можно на уровне контейнера организовать, чтобы он клон выдавал, если класс помечен тегом stateness
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
слабые ссылки без этого трейта и так норм
Как ты получишь свежий объект?
источник

А

Алексей R in Yii Framework 3
Dmitriy S
Как ты получишь свежий объект?
если контейнер на слабых ссылках то он это и обеспечит
источник

А

Алексей R in Yii Framework 3
тут важно понять вот что: если после эмиттера ты делаешь unset($response) и контейнер на слабых ссылках не опустошился после сборки мусора, то в каком-то сервисе завалялся стейт, который там заваляться не должен. Смело выкидывай исключение и дебаг-инфу
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
если контейнер на слабых ссылках то он это и обеспечит
Класс WeakReference можно наследовать и переопределить метод get?
источник