container README

The project's README from github.com/php-fig/container. As one markdown file: README.md.

Container interface

This repository holds all interfaces related to PSR-11 (Container Interface).

Note that this is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container.

The installable package and implementations are listed on Packagist.

container (php-fig/container)

Searching Database…

Что это такое?Официальный репозиторий PHP-FIG с интерфейсами для PSR-11 — стандарта Container Interface. Он определяет абстракции, которые описывают компоненты контейнера внедрения зависимостей (Dependency Injection Container).
То есть это настоящий контейнер внедрения зависимостей, через который я могу запустить свой код?Нет — здесь только PHP-интерфейсы, а не работающий контейнер. Вы зависите от стандарта, а приложение подключает любой контейнер, совместимый с PSR-11, какой ему больше нравится.
Как добавить его в PHP-проект?Установите пакет через Composer из Packagist — там же даны ссылки и на устанавливаемый пакет, и на список реализаций контейнеров.
Нужно ли что-то ещё вместе с ним?Только PHP и Composer — пакет состоит из одних интерфейсов и не имеет зависимостей в рантайме. Чтобы реально получать сервисы, дополнительно нужно поставить конкретную реализацию PSR-11 контейнера.
Чего он точно не сможет сделать за меня?Сам по себе он не создаёт и не выдаёт никакие сервисы — пока установлены только эти интерфейсы, ничего не произойдёт, пока вы не выберете настоящий контейнер, который их реализует.
Это для разработчиков приложений или авторов библиотек?В основном для авторов библиотек: если библиотека кодируется поверх этих интерфейсов, она остаётся независимой от конкретного контейнера, а конечное приложение как раз выбирает и настраивает конкретную реализацию.
А что такое PSR-11?PSR-11 — это стандарт PHP-FIG для контейнеров внедрения зависимостей: общий набор интерфейсов, который может реализовать любой контейнер. В этом репозитории лежат официальные интерфейсы, благодаря чему код может запрашивать сервисы, не заботясь о том, какой контейнер за ними стоит.
Почему библиотеке лучше зависеть от этого пакета, а не от конкретного контейнера?Потому что интерфейс не привязывает её к вендору. Библиотека, написанная поверх PSR-11, работает с любым совместимым контейнером, который уже использует приложение, вместо того чтобы навязывать всем одну конкретную реализацию внедрения зависимостей.
А какие контейнеры реализуют эти интерфейсы?В README ни один не называется — там просто ссылка на список реализаций на Packagist, где собраны контейнеры, совместимые с PSR-11.
Creator
php-fig
Size
0.3 MB
Stars
10K
Age
10y
Commits · 90 Days