PSR-11 - стандарт контейнера зависимостей:
interface ContainerInterface {
public function get(string $id): mixed;
public function has(string $id): bool;
}
// Использование
$logger = $container->get(LoggerInterface::class);
if ($container->has(CacheInterface::class)) {
$cache = $container->get(CacheInterface::class);
}Реализации: Laravel Service Container, Symfony DI, PHP-DI, League Container. Позволяет библиотекам работать с любым DI-контейнером.