Search by

cakephp / container

cakephp

A fast and intuitive dependency injection container.

5.4.2 2026-07-21 20:51 UTC

This package is auto-updated.

Last update: 2026-09-06 01:12:06 UTC


README

Total Downloads License

CakePHP Container Library

The Container library provides a PSR-11 compatible dependency injection container for defining application services and resolving their dependencies.

Usage

Services can be defined with concrete classes, shared instances, factory functions, or interface mappings:

use App\Service\AuditLogService;
use App\Service\AuditLogServiceInterface;
use App\Service\ApiClient;
use App\Service\BillingService;
use Cake\Container\Container;

$container = new Container();

// Add a concrete class.
$container->add(BillingService::class);

// Add a singleton service.
$container->addShared('apiClient', fn () => new ApiClient('https://example.com'));

// Add an implementation for an interface.
$container->add(AuditLogServiceInterface::class, AuditLogService::class);

$billing = $container->get(BillingService::class);

Definitions can also have arguments, tags, and service providers attached when your application needs more control over how objects are built.

Documentation

Please make sure you check the official documentation