Getting Started

Author Latest Version

Software License Build Status Coverage Status Quality Score Total Downloads

What is Container?

Container is a small but powerful dependency injection container that allows you to decouple components in your application in order to write clean and testable code.

Container on Packagist

Key Features

  • Interoperability. Container is an implementation of the container-interop project.
  • Speed. Because Container is small, it is also very fast.
  • Service Providers allow you to package code or configuration for packages that you reuse regularly.
  • Inflectors allow you to manipulate objects resolved through the container based on the type.
  • Delegate containers allow you to register back up containers to resolve services when they are not provided by this container.
  • Extensible. Container is modular so if you need to change or extend functionality it is very easy to do so.


Container was created by Phil Bennett. Find him on Twitter at @philipobenito.


System Requirements

You need PHP >= 5.4.0 to use League\Container but the latest stable version of PHP is recommended.


Container is available on Packagist and can be installed using Composer:

composer require league/container

Most modern frameworks will include Composer out of the box, but ensure the following file is included:


// include the Composer autoloader
require 'vendor/autoload.php';

Going Solo

You can also use Container without using Composer by registering an autoloader function:

spl_autoload_register(function ($class) {
    $prefix = 'League\\Container\\';
    $base_dir = __DIR__ . '/src/';
    $len = strlen($prefix);
    if (strncmp($prefix, $class, $len) !== 0) {
        // no, move to the next registered autoloader
    $relative_class = substr($class, $len);
    $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
    if (file_exists($file)) {
        require $file;

Or, use any other PSR-4 compatible autoloader.