cekta/di

psr/container implementation for humans

Maintainers

Details

github.com/cekta/di

Source

Issues

Installs: 378

Dependents: 1

Suggesters: 0

Security: 0

Stars: 82

Watchers: 10

Forks: 7

Open Issues: 6

pkg:composer/cekta/di

v2.2.1 2025-11-23 09:45 UTC

This package is auto-updated.

Last update: 2025-12-12 20:00:58 UTC


README

Telegram chat Mutation testing badge Latest Stable Version License

A modern, high-performance PSR-11 Container implementation designed for developers who value simplicity and performance.

✨ Features

  • 🚀 Zero Runtime Overhead - All dependencies are resolved during compilation, not at runtime
    • No runtime reflection - All dependency resolution happens during compilation
    • Predictable performance - No dynamic analysis slowing down your application
  • OPcache Ready - Generated code works perfectly with PHP's opcode cache
  • 🔧 Flexible Configuration - Mix autowiring with explicit configuration
  • 📦 Full PSR-11 Compliance - Implements the standard Container Interface
  • 🔄 Modern PHP Support - Works with Union Types, Intersection Types, DNF Types, and variadic arguments
  • 🧩 Interface & Abstract Class Support - Full dependency injection for abstractions
  • 🎯 High Code Quality - Rigorously tested with mutation testing
  • Easy debugging - Generated container is plain PHP code you can read and understand

📦 Installation

composer require cekta/di

🚀 Quick Start

src/Controller.php:

namespace App;

class Controller {
}

bin/build.php:

use Cekta\DI\Compiler;

// Configure your dependencies.
$compiler = new Compiler(
    containers: [App\Controller::class],
    fqcn: 'App\\Runtime\\Container'
);

// Generate the container
$code = $compiler->compile();
file_put_contents(__DIR__ . '/../runtime/Container.php', $code);

app.php:

use Cekta\DI\Compiler;

// Use it in your application
$container = new App\Runtime\Container();
$controller = $container->get(App\Controller::class);

📚 Documentation

https://cekta.github.io/di/

🤝 Community

Join the Telegram chat for discussions in English or Russian.

Cekta/DI - Dependency injection that gets out of your way and lets you focus on building great applications.