Size: a a a

2021 April 20

В

Виктор in Yii Framework 3
Еще смержили PR на удаление кастомного сериализатора из amqp адаптера: https://github.com/yiisoft/yii-queue-amqp/pull/29
источник

m

mj4444 in Yii Framework 3
Из документации к yiisoft/di: In the code above we add a CarFactoryProvider to the container. The register() method of CarFactoryProvider isn't executed until EngineInterface gets requested from the container. When this happens, the container will first check the result of the provides() method. Because EngineInterface is listed there it will then call the register() method of the CarFactoryProvider.

Но это противоречит абзацу описания стандарта PSR-11: has takes one unique parameter: an entry identifier, which MUST be a string. has MUST return true if an entry identifier is known to the container and false if it is not. If has($id) returns false, get($id) MUST throw a NotFoundExceptionInterface.

Получается несоответствие стандарту?
источник

m

mj4444 in Yii Framework 3
Пример из доков
// returns false as provider wasn't registered
$container->has(EngineInterface::class);
// returns SolarEngine, registered in the provider
$engine = $container->get(EngineInterface::class);
// returns true as provider was registered when EngineInterface was requested from the container
$container->has(EngineInterface::class);

В соответствии с PSR-11 если has возвращает false, то get должен сгенерировать exception, а тут в примере это не так.
источник

AM

Alexander Makarov in Yii Framework 3
Дока несколько outdated.
источник

AM

Alexander Makarov in Yii Framework 3
Всё никак не заставлю себя обновить.
источник

AM

Alexander Makarov in Yii Framework 3
Так что, вероятно, это уже не так.
источник

AM

Alexander Makarov in Yii Framework 3
Но @yiiliveext лучше знает.
источник

DS

Dmitriy S in Yii Framework 3
Да, там старое поведение, сейчас все по пср. И вообще провайдеры смотреть сейчас не стоит, я их полностью переделываю под будущий пср.
источник

m

mj4444 in Yii Framework 3
какой номер у него?
источник

DS

Dmitriy S in Yii Framework 3
У чего?
источник

m

mj4444 in Yii Framework 3
У будущего psr с провайдерами. Или где можно посмотреть что там будет?
источник

DS

Dmitriy S in Yii Framework 3
Хз, он в процессе разработки. Смотреть по ссылке обсуждение в пр
https://github.com/container-interop/service-provider/
источник

m

mj4444 in Yii Framework 3
спс
источник

AT

Anton Titov in Yii Framework 3
Кривой стандарт, нарушает PSR-11.
источник

DS

Dmitriy S in Yii Framework 3
Чем нарушает?
источник

AT

Anton Titov in Yii Framework 3
Влезает в поведение PSR-11, хотя мог бы и не влезать. https://github.com/container-interop/service-provider/issues/52
источник

AT

Anton Titov in Yii Framework 3
Т.е., фактически, он перетирает PSR-11 доп ограничением, что делает два стандарта несовместимыми.
источник

m

mj4444 in Yii Framework 3
тем что null это валидный результат, а не Exception?
источник

AT

Anton Titov in Yii Framework 3
Это не самая большая проблема, а именно то что он определяет поведение на сам контейнер, а не то как нужно трактовать сервис провайдер, абстрактно от контейнера.
источник

AT

Anton Titov in Yii Framework 3
Там в тикетах прилично расписано.
источник