🦖
[] codesaur/container 1=[]
codesaur/container · v3.2.0

Container

Хөнгөн, хурдан, PSR-11 стандартад нийцсэн dependency injection container

Packagist version Downloads PHP version License Aikido Intel 96/100 PSR-11
1:1 ══ composer require codesaur/container
[] Container

PSR-11 ContainerInterface-ийг хэрэгжүүлсэн, lazy loading, auto-wiring, interface binding, service alias зэрэг боломжтой DI container. Reflection ашиглан dependency-үүдийг автоматаар resolve хийж instance үүсгэнэ. codesaur экосистемийн үндсэн бүрэлдэхүүн боловч ямар ч PHP төслөөс бие даан ашиглах боломжтой.

Онцлогууд
  • PSR-11 ContainerInterface хэрэгжилт
  • Lazy Loading - сервисүүд зөвхөн шаардлагатай үед үүсгэгдэнэ
  • Auto-wiring - constructor dependency-үүдийг автоматаар resolve хийх
  • Interface Binding - interface-ийг implementation-тай холбох
  • Service Aliases - нэг сервисийг олон нэрээр авах
  • Closure / callable factory дэмжлэг
  • Framework-agnostic, гадны хамааралгүй

Үндсэн классууд

КлассҮүрэг
ContainerPSR-11 container - set(), get(), has(), alias, binding
ContainerExceptionСервис үүсгэх үеийн алдаа
NotFoundExceptionСервис олдоогүй үеийн алдаа (PSR-11)

Жишээ код

use codesaur\Container\Container;

// Контейнер үүсгэх / Create container
$container = new Container();

// Класс бүртгэх / Register class
$container->set(MyService::class);

// Параметртэй класс бүртгэх / Register class with parameters
$container->set(Printer::class, ['Hello, World!']);

// Сервис авах / Get service
$service = $container->get(MyService::class);
$printer = $container->get(Printer::class);

// Сервис байгаа эсэхийг шалгах / Check if service exists
if ($container->has(MyService::class)) {
    $printer->print(); // Output: Hello, World!
}

Тест ажиллуулах

composer test
[] Info
Суулгах
composer require codesaur/container
Шаардлага
  • PHP 8.2.1+
  • Composer
Aikido оноо 96/100
Шалгасан: 2026-09-04
Холбоосууд