Size: a a a

2020 March 19

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Ну так в моем варианте так и можно сделать как раз, а втвоем нет. В чем вопрос был?
1. Чем Resetable лучше того, чтобы дёрнуть руками?
2. Чем Resetable лучше ресета по событию или в index.php для yii-* пакетов?
3. Если вероятность того, что в сторонних пакетах нужен будет сброс без Resetable велика, стоит ли делать Resetable и плодить варианты как сделать одно и то же? Это ставит проблемы выбора + не будет места где будет видно, что ресетится на каждом цикле.
источник

AM

Alexander Makarov in Yii Framework 3
4. Те, кто будет использовать RR или Swoole, достаточно подкованы чтобы обресетить руками без автомагии.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
1. Чем Resetable лучше того, чтобы дёрнуть руками?
2. Чем Resetable лучше ресета по событию или в index.php для yii-* пакетов?
3. Если вероятность того, что в сторонних пакетах нужен будет сброс без Resetable велика, стоит ли делать Resetable и плодить варианты как сделать одно и то же? Это ставит проблемы выбора + не будет места где будет видно, что ресетится на каждом цикле.
1. Что ты собираешься дергать руками? Если у тебя объект не рисетейбл, то ты его не сможешь сбросить, только пересоздать.
2. Это ты теплое с мягким сравниваешь. Resetable  - это итерфейс, который предоставляет возможность сброса стейтфул сервиса в начальное состояние, весто его полного пересоздания. А где производить сброс, в рисетейбл контейнере, по событию шатдаун ( с перебором всех сервисов и вызовом у них рисет) или же в индекс пхп после отсылки запроса - это уже детали реализации. Я сделал сброс в рисетейбл контейнере, потому что это логично. У меня все стейтфул сервисы хранятся в рисетейбл/стейтфул контейнере. В твоем варианте сервисы, которые должны быть сброшены, будет хранится в стейтлис контейнере, очевидно что это выглядит как бред.
3. В десятый раз напишу и в последний, Resetable - это опция, которая позволяет писать более оптимизированнные приложения, а также писать фреймворко-независимые пакеты, которые поддерживают сброс своих стейтфул сервисов, и этот сброс можно сделать в любом фреймворке.
источник

AM

Alexander Makarov in Yii Framework 3
1. Метод, который обресетить объект. Он может не реализовывать Resetable (и в большинстве случаев не будет, особенно если пакет сделало не сообщество Yii).
2. Не очевидно.
3. Интерфейс не нужен для того, чтобы добавить себе метод reset(), resetState(), resetInternalData() или что-то в этом роде.
источник

AM

Alexander Makarov in Yii Framework 3
Resetable прокатит только в одном случае. Если его сделать PSR-ом.
источник

AM

Alexander Makarov in Yii Framework 3
Потому как чтобы появились контейнеры под него кроме нашего и чтобы сервисы начали его реализовывать нужен пинок. Пинок от конкретного фреймворка никто не воспримет всерьёз.
источник

AM

Alexander Makarov in Yii Framework 3
Но!

1. На это нужен минимум год.
2. Можно без этого.
источник

DS

Dmitriy S in Yii Framework 3
Подведем итоги. По факту ты убрал возможность просто и изящно рисетить сервисы без их пересоздания. Пакеты, который будут сделаны для использования не только в yii3, не смогут предоставлять такую возможность вообще, от слова совсем. Никто в здравом уме не будет тянуть в него yii-web. Кроме этого, ты убрал возможность делать это и в не yii-* пакетах, потому что оно не должны быть зависмы от yii-* пакетов. Ты доволен?
источник

AM

Alexander Makarov in Yii Framework 3
Нет, не так.
источник

AM

Alexander Makarov in Yii Framework 3
> Пакеты, который будут сделаны для использования не только в yii3, не смогут предоставлять такую возможность вообще, от слова совсем.

Вот это не так.
источник

AM

Alexander Makarov in Yii Framework 3
Пакет всегда может дать метод resetMyState() или reset() или другой похожий.
источник

AM

Alexander Makarov in Yii Framework 3
Никто не запрещает.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Никто не запрещает.
И где ты его будешь использовать? Вручную прописывать для какждого сервиса? Причем у всех он может назваться по разному.
источник

AM

Alexander Makarov in Yii Framework 3
Мы всегда может его дёрнуть в конце request-response.
источник

AM

Alexander Makarov in Yii Framework 3
Да, вручную.
источник

AM

Alexander Makarov in Yii Framework 3
Он и будет у всех называться по-разному.
источник

А

Алексей R in Yii Framework 3
если это обретёт массовый характер - сделаем интерфейс
источник

AM

Alexander Makarov in Yii Framework 3
Попробуй заставь Symfony или League имплементить интерфейс Yiisoft/Resetable;
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
если это обретёт массовый характер - сделаем интерфейс
Я только за. Но только по факту.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Мы всегда может его дёрнуть в конце request-response.
Только если прописать вручную. На каждый пакет нужно отдельно прописывать и список там может быть на сотни сервисов
источник