Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
C

container-interop

> 编程语言
Open source

Containers interoperability

1.2K stars0 likes3 views
WebsiteGitHub

About

Containers interoperability

Container Interoperability

Deprecation warning!

Starting Feb. 13th 2017, container-interop is officially deprecated in favor of PSR-11. Container-interop has been the test-bed of PSR-11. From v1.2, container-interop directly extends PSR-11 interfaces. Therefore, all containers implementing container-interop are now de-facto compatible with PSR-11.

  • Projects implementing container-interop interfaces are encouraged to directly implement PSR-11 interfaces instead.
  • Projects consuming container-interop interfaces are very strongly encouraged to directly type-hint on PSR-11 interfaces, in order to be compatible with PSR-11 containers that are not compatible with container-interop.

Regarding the delegate lookup feature, that is present in container-interop and not in PSR-11, the feature is actually a design pattern. It is therefore not deprecated. Documentation regarding this design pattern will be migrated from this repository into a separate website in the future.

About

container-interop tries to identify and standardize features in container objects (service locators, dependency injection containers, etc.) to achieve interoperability.

Through discussions and trials, we try to create a standard, made of common interfaces but also recommendations.

If PHP projects that provide container implementations begin to adopt these common standards, then PHP applications and projects that use containers can depend on the common interfaces instead of specific implementations. This facilitates a high-level of interoperability and flexibility that allows users to consume any container implementation that can be adapted to these interfaces.

The work done in this project is not officially endorsed by the PHP-FIG, but it is being worked on by members of PHP-FIG and other good developers. We adhere to the spirit and ideals of PHP-FIG, and hope this project will pave the way for one or more future PSRs.

Installation

You can install this package through Composer:

json
composer require container-interop/container-interop

The packages adheres to the SemVer specification, and there will be full backward compatibility between minor versions.

Standards

Available

  • ContainerInterface. Description Meta Document. Describes the interface of a container that exposes methods to read its entries.
  • Delegate lookup feature. Meta Document. Describes the ability for a container to delegate the lookup of its dependencies to a third-party container. This feature lets several containers work together in a single application.

Proposed

View open request for comments

Compatible projects

Projects implementing ContainerInterface

  • Acclimate: Adapters for Aura.Di, Laravel, Nette DI, Pimple, Symfony DI, ZF2 Service manager, ZF2 Dependency injection and any container using ArrayAccess
  • Aura.Di
  • auryn-container-interop
  • Burlap
  • Chernozem
  • Data Manager
  • Disco
  • InDI
  • League/Container
  • Mouf
  • Njasm Container
  • PHP-DI
  • Picotainer
  • PimpleInterop
  • Pimple3-ContainerInterop (using Pimple v3)
  • SitePoint Container
  • Thruster Container (PHP7 only)
  • Ultra-Lite Container
  • Unbox
  • XStatic
  • Zend\ServiceManager
  • Zit

Projects implementing the delegate lookup feature

  • Aura.Di
  • Burlap
  • Chernozem
  • InDI
  • League/Container
  • Mouf
  • Picotainer
  • PHP-DI
  • PimpleInterop
  • Ultra-Lite Container

Middlewares implementing ContainerInterface

  • Alias-Container: add aliases support to any container
  • Prefixer-Container: dynamically prefix identifiers
  • Lazy-Container: lazy services

Projects using ContainerInterface

The list below contains only a sample of all the projects consuming ContainerInterface. For a more complete list have a look here.

Downloads
Adroit
Behat
blast-facades: Minimize complexity and represent dependencies as facades.
interop.silex.di: an extension to Silex that adds support for any container-interop compatible container
mindplay/walkway: a modular request router
mindplay/middleman: minimalist PSR-7 middleware dispatcher
PHP-DI/Invoker: extensible and configurable invoker/dispatcher
Prophiler
Silly: CLI micro-framework
Slim v3
Splash
Woohoo Labs. Harmony: a flexible micro-framework
zend-expressive

Workflow

Everyone is welcome to join and contribute.

The general workflow looks like this:

  1. Someone opens a discussion (GitHub issue) to suggest an interface
  2. Feedback is gathered
  3. The interface is added to a development branch
  4. We release alpha versions so that the interface can be experimented with
  5. Discussions and edits ensue until the interface is deemed stable by a general consensus
  6. A new minor version of the package is released

We try to not break BC by creating new interfaces instead of editing existing ones.

While we currently work on interfaces, we are open to anything that might help towards interoperability, may that be code, best practices, etc.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

PHP

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言