PHPackages                             lukman-ss/container - 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. lukman-ss/container

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

lukman-ss/container
===================

A lightweight dependency injection container for PHP.

v1.0.0(today)10MITPHPPHP &gt;=8.2

Since Jun 13Pushed todayCompare

[ Source](https://github.com/lukman-ss/container)[ Packagist](https://packagist.org/packages/lukman-ss/container)[ RSS](/packages/lukman-ss-container/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Lukman Container
================

[](#lukman-container)

[![Lukman Container](docs/hero.png)](docs/hero.png)

A lightweight dependency injection container for PHP 8.2+ with zero runtime dependencies.

Features
--------

[](#features)

- Bindings, singletons, and existing instances
- Alias, remove, and flush helpers
- Reflection constructor auto-wiring
- Contextual binding for class dependencies
- Tags for grouped lazy resolution
- Method injection via `call()`
- Service providers

Requirements
------------

[](#requirements)

- PHP 8.2 or higher

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

[](#installation)

```
composer require lukman-ss/container
```

Basic Usage
-----------

[](#basic-usage)

```
use Lukman\Container\Container;

$container = new Container();

$container->bind('config', ['debug' => true]);

$config = $container->get('config');
```

Bindings
--------

[](#bindings)

```
use Lukman\Container\Container;

final class Logger
{
}

$container = new Container();

$container->bind(Logger::class);

$loggerA = $container->get(Logger::class);
$loggerB = $container->get(Logger::class);
```

Singletons
----------

[](#singletons)

```
$container->singleton(Logger::class);

$loggerA = $container->get(Logger::class);
$loggerB = $container->get(Logger::class);
```

Instances
---------

[](#instances)

```
$logger = new Logger();

$container->instance(Logger::class, $logger);

$sameLogger = $container->get(Logger::class);
```

Auto-wiring
-----------

[](#auto-wiring)

```
final class UserRepository
{
    public function __construct(public Logger $logger)
    {
    }
}

$repository = $container->get(UserRepository::class);
```

Aliases
-------

[](#aliases)

```
$container->bind(Logger::class);
$container->alias(Logger::class, 'logger');

$logger = $container->get('logger');
```

Contextual Binding
------------------

[](#contextual-binding)

```
interface LoggerInterface
{
}

final class FileLogger implements LoggerInterface
{
}

final class Worker
{
    public function __construct(public LoggerInterface $logger)
    {
    }
}

$container->when(Worker::class)
    ->needs(LoggerInterface::class)
    ->give(FileLogger::class);

$worker = $container->get(Worker::class);
```

Tags
----

[](#tags)

```
$container->bind('first_logger', fn () => new Logger());
$container->bind('second_logger', fn () => new Logger());

$container->tag(['first_logger', 'second_logger'], 'loggers');

$loggers = $container->tagged('loggers');
```

Method Injection
----------------

[](#method-injection)

```
$result = $container->call(function (Logger $logger): Logger {
    return $logger;
});
```

Service Providers
-----------------

[](#service-providers)

```
use Lukman\Container\Container;
use Lukman\Container\ServiceProviderInterface;

final class AppServiceProvider implements ServiceProviderInterface
{
    public function register(Container $container): void
    {
        $container->singleton(Logger::class);
    }

    public function boot(Container $container): void
    {
    }
}

$container->register(AppServiceProvider::class);
$container->boot();
```

Tests
-----

[](#tests)

```
composer test
```

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

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

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/64991223?v=4)[Lukman](/maintainers/lukman-ss)[@lukman-ss](https://github.com/lukman-ss)

---

Tags

containerPSR-11dependency-injectiondi

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[php-di/php-di

The dependency injection container for humans

2.8k53.2M1.2k](/packages/php-di-php-di)[slince/di

A flexible dependency injection container

20268.4k6](/packages/slince-di)

PHPackages © 2026

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