Skip to content

cakephp/container

Repository files navigation

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

About

[READ-ONLY] PSR-11 container implementation. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages