This document describes a common interface for dependency injection containers – тоест, когато имаме клас(ове), които ще използваме като data containers, той/те трябва да имплементират Psr\Container\ContainerInterface и задължително да имат поне метод get() и has().
The goal set by ContainerInterface
is to standardize how frameworks and libraries make use of a container to obtain objects and parameters (called entries in the rest of this document).
The Psr\Container\ContainerInterface
exposes two methods: get
() and has
()
Exceptions directly thrown by the container SHOULD implement the Psr\Container\ContainerExceptionInterface
.
A call to the get
method with a non-existing id MUST throw a Psr\Container\NotFoundExceptionInterface
Всеки елемент, съдържащ се в даденият контейнер, трябва да има уникален „oppaque string“, който уникално да го индентифицира. По този opaque string можем да изпоплзваме get(string) за да извлечем даденият елемент, или has(string) за да проверим дали такъв елемент съществува.
Специално за get() дали винаги по дадедн ID да връща един и същ резултат или не. Няма категоричност. Може и така и така.
Two successive calls to get with the same identifier SHOULD return the same value. However, depending on the implementor design and/or user configuration, different values might be returned, so user SHOULD NOT rely on getting the same value on 2 successive calls.
Литератра: