cloudcastle/di
Composer 安装命令:
composer require cloudcastle/di
包简介
Контейнер внедрения зависимостей для PHP
README 文档
README
Лёгкий контейнер внедрения зависимостей для PHP 8.3+ с поддержкой PSR-11.
Возможности
- Регистрация сервисов как готовых экземпляров или фабрик
- Singleton-поведение: фабрика вызывается один раз, результат кэшируется
- Передача контейнера в фабрику для разрешения зависимостей
- Соответствие PSR-11 (
Psr\Container\ContainerInterface) - Расширенный контракт с
set()иhasDefinition() - Строгая типизация, статический анализ на максимальном уровне, 100% покрытие тестами
Требования
- PHP ^8.3
psr/container^2.0
Установка
composer require cloudcastle/di
Быстрый старт
<?php use CloudCastle\DI\Container; $container = new Container(); // Готовый экземпляр $container->set('logger', new Psr\Log\NullLogger()); // Фабрика с доступом к контейнеру $container->set('repository', static fn (Container $c) => new UserRepository($c->get('logger'))); $logger = $container->get('logger'); $repository = $container->get('repository');
API
| Метод | Описание |
|---|---|
get(string $id): mixed |
Возвращает сервис; бросает NotFoundException, если не зарегистрирован |
has(string $id): bool |
Проверяет, доступен ли сервис (зарегистрирован или уже создан) |
set(string $id, mixed $concrete): void |
Регистрирует экземпляр или фабрику; сбрасывает кэш singleton |
hasDefinition(string $id): bool |
Проверяет регистрацию без создания экземпляра |
Сообщество
- GitHub Discussions — вопросы, идеи, примеры использования (шаблоны Q&A, Ideas, Show and tell)
- Issues — баги и задачи на разработку
Документация
- Руководство для разработчиков — настройка окружения, тесты, CI
- Политика безопасности
- История изменений
- API-документация:
composer docs→ каталогdocs/(генерируется локально)
Качество
composer install composer ci
Пайплайн включает линтеры, PHPStan (max), Psalm (level 1), PHPMD, Deptrac, Rector, unit/integration/security/load/performance-тесты, покрытие 100%, мутационное тестирование (Infection MSI 100%).
Лицензия
Распространяется под лицензией MIT.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-25