PHPackages                             container-interop/definition-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. container-interop/definition-interop

ActiveLibrary

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

Promoting container interoperability through standard definitions

v0.2.0(10y ago)191.0k—0%2[6 issues](https://github.com/container-interop/definition-interop/issues)3MITPHP

Since Nov 27Pushed 10y ago10 watchersCompare

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

READMEChangelog (2)DependenciesVersions (3)Used By (3)

Container Definitions Interoperability
======================================

[](#container-definitions-interoperability)

*definition-interop* tries to offer a solution for writing **cross-framework modules**.

Introduction
------------

[](#introduction)

Modules (aka packages or bundles) are widespread in modern frameworks. Unfortunately each framework has its own convention and tools for writing them. The goal of *container-interop* and more specifically *definition-interop* is to help developers write modules that can work in any framework.

Cross-framework modules can take advantage of PSR-7 (HTTP requests and responses abstractions) as well as Puli (resource location in packages), but the last missing piece is letting modules register container entries. That is necessary so that modules can expose services to users.

Scope
-----

[](#scope)

While *container-interop/container-interop* tries to standardize how to fetch entries from containers, *container-interop/definition-interop* tries to standardize how to define container entries.

The definitions standardized in this package *are only meant to be used by modules*; they are not meant to cover every use case of every container. Given this restricted scope, the definitions are intentionally simple in order to be easily supported by every container.

With that in mind, users can rest assured that they can use all the features offered by their container of choice, while only module developers have to make use of the standard definitions.

Installation
------------

[](#installation)

```
composer require container-interop/definition-interop@dev

```

This package adheres to the [SemVer](http://semver.org/) specification and will be fully backward compatible between minor versions.

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

[](#compatible-projects)

### Projects implementing *definition-interop*

[](#projects-implementing-definition-interop)

Projects providing definition classes implementing the *definition-interop* interfaces.

- [Assembly](https://github.com/mnapoli/assembly)

### Loaders

[](#loaders)

Projects reading configuration files in any kind of format and generating *definition-interop* compatible definitions.

- [YamlDefinitionLoader](https://github.com/thecodingmachine/yaml-definition-loader): Loads definitions from YAML files. Accepts a subset of Symfony YAML file format.

### Projects consuming *definition-interop*

[](#projects-consuming-definition-interop)

Projects reading *definition-interop* compatible definitions and turning them into actual container entries.

- [Assembly](https://github.com/mnapoli/assembly): provides a simple *container-interop* compatible container
- [Yaco](https://github.com/thecodingmachine/yaco): provides a compiler generating *container-interop* compatible containers

*Note:* A [dedicated test suite](https://github.com/container-interop/definition-interop-tests) is available for projects consuming *definition-interop* compatible definitions. Those projects can use this test suite to check compliance with *definition-interop*.

### Modules built using *definition-interop*

[](#modules-built-using-definition-interop)

- [Glide module](https://github.com/mnapoli/glide-module)

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59.5% of commits — single point of failure

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 ~2 days

Total

2

Last Release

3813d 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)

---

Top Contributors

[![mnapoli](https://avatars.githubusercontent.com/u/720328?v=4)](https://github.com/mnapoli "mnapoli (22 commits)")[![moufmouf](https://avatars.githubusercontent.com/u/1290952?v=4)](https://github.com/moufmouf "moufmouf (15 commits)")

### Embed Badge

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

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

PHPackages © 2026

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