PHPackages                             container-interop/container-interop - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. container-interop/container-interop

Abandoned → [psr/container](/?search=psr%2Fcontainer)Library[PSR &amp; Standards](/categories/psr-standards)

container-interop/container-interop
===================================

Promoting the interoperability of container objects (DIC, SL, etc.)

1.2.0(9y ago)1.3k105.7M↑11.7%44[13 issues](https://github.com/container-interop/container-interop/issues)[1 PRs](https://github.com/container-interop/container-interop/pulls)20MITPHP

Since Mar 16Pushed 4y ago42 watchersCompare

[ Source](https://github.com/container-interop/container-interop)[ Packagist](https://packagist.org/packages/container-interop/container-interop)[ Docs](https://github.com/container-interop/container-interop)[ RSS](/packages/container-interop-container-interop/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (1)Versions (4)Used By (20)

Container Interoperability
==========================

[](#container-interoperability)

[![Latest Stable Version](https://camo.githubusercontent.com/dcf333ec250cea9d3897908eccd002b059927a84ee8ab87318266c053f77c6d6/68747470733a2f2f706f7365722e707567782e6f72672f636f6e7461696e65722d696e7465726f702f636f6e7461696e65722d696e7465726f702f762f737461626c652e706e67)](https://packagist.org/packages/container-interop/container-interop)[![Total Downloads](https://camo.githubusercontent.com/e9cae687f1ba7e42228b15268842d1de40d238716ae33e1ff75554704ad239f7/68747470733a2f2f706f7365722e707567782e6f72672f636f6e7461696e65722d696e7465726f702f636f6e7461696e65722d696e7465726f702f646f776e6c6f6164732e737667)](https://packagist.org/packages/container-interop/container-interop)

Deprecation warning!
--------------------

[](#deprecation-warning)

Starting Feb. 13th 2017, container-interop is officially deprecated in favor of [PSR-11](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md). 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
-----

[](#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](http://www.php-fig.org/), 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
------------

[](#installation)

You can install this package through Composer:

```
composer require container-interop/container-interop
```

The packages adheres to the [SemVer](http://semver.org/) specification, and there will be full backward compatibility between minor versions.

Standards
---------

[](#standards)

### Available

[](#available)

- [`ContainerInterface`](src/Interop/Container/ContainerInterface.php). [Description](docs/ContainerInterface.md) [Meta Document](docs/ContainerInterface-meta.md). Describes the interface of a container that exposes methods to read its entries.
- [*Delegate lookup feature*](docs/Delegate-lookup.md). [Meta Document](docs/Delegate-lookup-meta.md). 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

[](#proposed)

View open [request for comments](https://github.com/container-interop/container-interop/labels/RFC)

Compatible projects
-------------------

[](#compatible-projects)

### Projects implementing `ContainerInterface`

[](#projects-implementing-containerinterface)

- [Acclimate](https://github.com/jeremeamia/acclimate-container): Adapters for Aura.Di, Laravel, Nette DI, Pimple, Symfony DI, ZF2 Service manager, ZF2 Dependency injection and any container using `ArrayAccess`
- [Aura.Di](https://github.com/auraphp/Aura.Di)
- [auryn-container-interop](https://github.com/elazar/auryn-container-interop)
- [Burlap](https://github.com/codeeverything/burlap)
- [Chernozem](https://github.com/pyrsmk/Chernozem)
- [Data Manager](https://github.com/chrismichaels84/data-manager)
- [Disco](https://github.com/bitexpert/disco)
- [InDI](https://github.com/idealogica/indi)
- [League/Container](http://container.thephpleague.com/)
- [Mouf](http://mouf-php.com)
- [Njasm Container](https://github.com/njasm/container)
- [PHP-DI](http://php-di.org)
- [Picotainer](https://github.com/thecodingmachine/picotainer)
- [PimpleInterop](https://github.com/moufmouf/pimple-interop)
- [Pimple3-ContainerInterop](https://github.com/Sam-Burns/pimple3-containerinterop) (using Pimple v3)
- [SitePoint Container](https://github.com/sitepoint/Container)
- [Thruster Container](https://github.com/ThrusterIO/container) (PHP7 only)
- [Ultra-Lite Container](https://github.com/ultra-lite/container)
- [Unbox](https://github.com/mindplay-dk/unbox)
- [XStatic](https://github.com/jeremeamia/xstatic)
- [Zend\\ServiceManager](https://github.com/zendframework/zend-servicemanager)
- [Zit](https://github.com/inxilpro/Zit)

### Projects implementing the *delegate lookup* feature

[](#projects-implementing-the-delegate-lookup-feature)

- [Aura.Di](https://github.com/auraphp/Aura.Di)
- [Burlap](https://github.com/codeeverything/burlap)
- [Chernozem](https://github.com/pyrsmk/Chernozem)
- [InDI](https://github.com/idealogica/indi)
- [League/Container](http://container.thephpleague.com/)
- [Mouf](http://mouf-php.com)
- [Picotainer](https://github.com/thecodingmachine/picotainer)
- [PHP-DI](http://php-di.org)
- [PimpleInterop](https://github.com/moufmouf/pimple-interop)
- [Ultra-Lite Container](https://github.com/ultra-lite/container)

### Middlewares implementing `ContainerInterface`

[](#middlewares-implementing-containerinterface)

- [Alias-Container](https://github.com/thecodingmachine/alias-container): add aliases support to any container
- [Prefixer-Container](https://github.com/thecodingmachine/prefixer-container): dynamically prefix identifiers
- [Lazy-Container](https://github.com/snapshotpl/lazy-container): lazy services

### Projects using `ContainerInterface`

[](#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](http://packanalyst.com/class?q=Interop%5CContainer%5CContainerInterface).

Downloads[Adroit](https://github.com/bitexpert/adroit)[![](https://camo.githubusercontent.com/e789b6a790372298123f1315b57c41c66a66c29391405b682c48670f12834907/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6269746578706572742f6164726f69742e737667)](https://camo.githubusercontent.com/e789b6a790372298123f1315b57c41c66a66c29391405b682c48670f12834907/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6269746578706572742f6164726f69742e737667)[Behat](https://github.com/Behat/Behat/pull/974)[![](https://camo.githubusercontent.com/f13a3706e9f8478cd6af15406b63e694e46b3b28d15b1641ac8f81b5b432fd0c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62656861742f62656861742e737667)](https://camo.githubusercontent.com/f13a3706e9f8478cd6af15406b63e694e46b3b28d15b1641ac8f81b5b432fd0c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62656861742f62656861742e737667)[blast-facades](https://github.com/phpthinktank/blast-facades): Minimize complexity and represent dependencies as facades.[![](https://camo.githubusercontent.com/99bd7bac8e6826c57713747fbe298a502f649baaca3e596fb6367acdeb6723f0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f626c6173742f666163616465732e737667)](https://camo.githubusercontent.com/99bd7bac8e6826c57713747fbe298a502f649baaca3e596fb6367acdeb6723f0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f626c6173742f666163616465732e737667)[interop.silex.di](https://github.com/thecodingmachine/interop.silex.di): an extension to [Silex](http://silex.sensiolabs.org/) that adds support for any *container-interop* compatible container[![](https://camo.githubusercontent.com/bae354c390cf6e9b9f4d76898ecd5b13db6aac94a546ff8ac4466ea95f36087e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f75662f696e7465726f702e73696c65782e64692e737667)](https://camo.githubusercontent.com/bae354c390cf6e9b9f4d76898ecd5b13db6aac94a546ff8ac4466ea95f36087e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f75662f696e7465726f702e73696c65782e64692e737667)[mindplay/walkway](https://github.com/mindplay-dk/walkway): a modular request router[![](https://camo.githubusercontent.com/0394b6ce747b25cea5300d2208933ae0ea7eb9a75eafc6f044f733ec1aa11eb6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696e64706c61792f77616c6b7761792e737667)](https://camo.githubusercontent.com/0394b6ce747b25cea5300d2208933ae0ea7eb9a75eafc6f044f733ec1aa11eb6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696e64706c61792f77616c6b7761792e737667)[mindplay/middleman](https://github.com/mindplay-dk/middleman): minimalist PSR-7 middleware dispatcher[![](https://camo.githubusercontent.com/574c0dbf1cebd9264ab3bc4cf07d92dd35c098ad054e7ec83cba620d594b6432/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696e64706c61792f6d6964646c656d616e2e737667)](https://camo.githubusercontent.com/574c0dbf1cebd9264ab3bc4cf07d92dd35c098ad054e7ec83cba620d594b6432/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d696e64706c61792f6d6964646c656d616e2e737667)[PHP-DI/Invoker](https://github.com/PHP-DI/Invoker): extensible and configurable invoker/dispatcher[![](https://camo.githubusercontent.com/62077c81075fde7d92672db7cd3e19533533a3687c719be88ad17b2de224920f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068702d64692f696e766f6b65722e737667)](https://camo.githubusercontent.com/62077c81075fde7d92672db7cd3e19533533a3687c719be88ad17b2de224920f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068702d64692f696e766f6b65722e737667)[Prophiler](https://github.com/fabfuel/prophiler)[![](https://camo.githubusercontent.com/a273bcf2995d28c1bd6e80f66adf1cad46a6f22d0c89b67d96235364d38a24e6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6661626675656c2f70726f7068696c65722e737667)](https://camo.githubusercontent.com/a273bcf2995d28c1bd6e80f66adf1cad46a6f22d0c89b67d96235364d38a24e6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6661626675656c2f70726f7068696c65722e737667)[Silly](https://github.com/mnapoli/silly): CLI micro-framework[![](https://camo.githubusercontent.com/f1137e093a6de9f75ec0a521740ccde13fe35a4836d88fe2dcbb02322ad980d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6e61706f6c692f73696c6c792e737667)](https://camo.githubusercontent.com/f1137e093a6de9f75ec0a521740ccde13fe35a4836d88fe2dcbb02322ad980d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6e61706f6c692f73696c6c792e737667)[Slim v3](https://github.com/slimphp/Slim)[![](https://camo.githubusercontent.com/b1fa90555b2be61c5e7b57a8ffe6eeeafa0903f72cc7162fb735c6de495fb55f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736c696d2f736c696d2e737667)](https://camo.githubusercontent.com/b1fa90555b2be61c5e7b57a8ffe6eeeafa0903f72cc7162fb735c6de495fb55f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736c696d2f736c696d2e737667)[Splash](http://mouf-php.com/packages/mouf/mvc.splash-common/version/8.0-dev/README.md)[![](https://camo.githubusercontent.com/de2fc7d3918638450221b3d55e889af084c1fdc57154e939847fe424ff413d72/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f75662f6d76632e73706c6173682d636f6d6d6f6e2e737667)](https://camo.githubusercontent.com/de2fc7d3918638450221b3d55e889af084c1fdc57154e939847fe424ff413d72/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f75662f6d76632e73706c6173682d636f6d6d6f6e2e737667)[Woohoo Labs. Harmony](https://github.com/woohoolabs/harmony): a flexible micro-framework[![](https://camo.githubusercontent.com/093d1b73f9ec16a7167460f776a5f609e7dfbedf17b89ce116e998c1d49a6dc7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f776f6f686f6f6c6162732f6861726d6f6e792e737667)](https://camo.githubusercontent.com/093d1b73f9ec16a7167460f776a5f609e7dfbedf17b89ce116e998c1d49a6dc7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f776f6f686f6f6c6162732f6861726d6f6e792e737667)[zend-expressive](https://github.com/zendframework/zend-expressive)[![](https://camo.githubusercontent.com/cdd0035f923d86a8865831c506f608095b7c3c7d0212cf7ba52d17431691a974/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7a656e646672616d65776f726b2f7a656e642d657870726573736976652e737667)](https://camo.githubusercontent.com/cdd0035f923d86a8865831c506f608095b7c3c7d0212cf7ba52d17431691a974/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7a656e646672616d65776f726b2f7a656e642d657870726573736976652e737667)Workflow
--------

[](#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.

###  Health Score

55

—

FairBetter than 98% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity74

Solid adoption and visibility

Community52

Growing community involvement

Maturity65

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~533 days

Total

3

Last Release

3380d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1104771?v=4)[mouf](/maintainers/mouf)[@Mouf](https://github.com/Mouf)

![](https://www.gravatar.com/avatar/329a6111724074f5388e95dd41a03ccf3c43f4bfe1ecf27c94c9efc6f7823228?d=identicon)[mnapoli](/maintainers/mnapoli)

![](https://www.gravatar.com/avatar/fd0445bc21fa116c259b5889377b90cbd8a34d49357321f76a74f6d2c2ae6b0c?d=identicon)[Ocramius](/maintainers/Ocramius)

---

Top Contributors

[![mnapoli](https://avatars.githubusercontent.com/u/720328?v=4)](https://github.com/mnapoli "mnapoli (61 commits)")[![moufmouf](https://avatars.githubusercontent.com/u/1290952?v=4)](https://github.com/moufmouf "moufmouf (41 commits)")[![Ocramius](https://avatars.githubusercontent.com/u/154256?v=4)](https://github.com/Ocramius "Ocramius (13 commits)")[![jeremeamia](https://avatars.githubusercontent.com/u/107867?v=4)](https://github.com/jeremeamia "jeremeamia (4 commits)")[![shochdoerfer](https://avatars.githubusercontent.com/u/596449?v=4)](https://github.com/shochdoerfer "shochdoerfer (4 commits)")[![mindplay-dk](https://avatars.githubusercontent.com/u/103348?v=4)](https://github.com/mindplay-dk "mindplay-dk (3 commits)")[![codeeverything](https://avatars.githubusercontent.com/u/9589226?v=4)](https://github.com/codeeverything "codeeverything (2 commits)")[![Sam-Burns](https://avatars.githubusercontent.com/u/6594039?v=4)](https://github.com/Sam-Burns "Sam-Burns (2 commits)")[![BafS](https://avatars.githubusercontent.com/u/588205?v=4)](https://github.com/BafS "BafS (2 commits)")[![mbunge](https://avatars.githubusercontent.com/u/395518?v=4)](https://github.com/mbunge "mbunge (1 commits)")[![AndrewCarterUK](https://avatars.githubusercontent.com/u/6486835?v=4)](https://github.com/AndrewCarterUK "AndrewCarterUK (1 commits)")[![snapshotpl](https://avatars.githubusercontent.com/u/312655?v=4)](https://github.com/snapshotpl "snapshotpl (1 commits)")[![aurimasniekis](https://avatars.githubusercontent.com/u/15481?v=4)](https://github.com/aurimasniekis "aurimasniekis (1 commits)")[![cxj](https://avatars.githubusercontent.com/u/446131?v=4)](https://github.com/cxj "cxj (1 commits)")[![elazar](https://avatars.githubusercontent.com/u/15487?v=4)](https://github.com/elazar "elazar (1 commits)")[![harikt](https://avatars.githubusercontent.com/u/120454?v=4)](https://github.com/harikt "harikt (1 commits)")[![inxilpro](https://avatars.githubusercontent.com/u/21592?v=4)](https://github.com/inxilpro "inxilpro (1 commits)")[![jackprice](https://avatars.githubusercontent.com/u/4425652?v=4)](https://github.com/jackprice "jackprice (1 commits)")[![kocsismate](https://avatars.githubusercontent.com/u/6057627?v=4)](https://github.com/kocsismate "kocsismate (1 commits)")[![Maks3w](https://avatars.githubusercontent.com/u/1301698?v=4)](https://github.com/Maks3w "Maks3w (1 commits)")

### Embed Badge

![Health badge](/badges/container-interop-container-interop/health.svg)

```
[![Health](https://phpackages.com/badges/container-interop-container-interop/health.svg)](https://phpackages.com/packages/container-interop-container-interop)
```

###  Alternatives

[pimple/pimple

Pimple, a simple Dependency Injection Container

2.7k130.5M1.4k](/packages/pimple-pimple)[league/container

A fast and intuitive dependency injection container.

86787.8M343](/packages/league-container)[lctrs/psalm-psr-container-plugin

Let Psalm understand better psr11 containers

17648.1k13](/packages/lctrs-psalm-psr-container-plugin)[phpwatch/simple-container

A fast and minimal PSR-11 compatible Dependency Injection Container with array-syntax and without auto-wiring

1810.1k2](/packages/phpwatch-simple-container)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
