PHPackages                             cloud-castle/di-container - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. cloud-castle/di-container

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

cloud-castle/di-container
=========================

Dependency Injection container library

v2.0.0(7mo ago)524[1 issues](https://github.com/zorinalexey/cloud-casstle-di-container/issues)MITPHPPHP ^8.1 || ^8.2 || ^8.3 || ^8.4CI passing

Since Oct 16Pushed 7mo ago2 watchersCompare

[ Source](https://github.com/zorinalexey/cloud-casstle-di-container)[ Packagist](https://packagist.org/packages/cloud-castle/di-container)[ Fund](https://vk.com/leha_zorin)[ RSS](/packages/cloud-castle-di-container/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (12)Versions (2)Used By (0)

CloudCastle DI Container
========================

[](#cloudcastle-di-container)

[English](langs/en/README.md) | [Deutsch](langs/de/README.md) | [Français](langs/fr/README.md)

Мощный и гибкий Dependency Injection контейнер для PHP 8.1+ с поддержкой **autowiring** и **advanced features**.

🏆 **Мировой лидер** по производительности и безопасности
🚀 **506,274 операций/сек** — экстремальная производительность (compiled)
💾 **0.001 МБ утечек** за 15M циклов
⚡ **1,746,359 сервисов** — максимальная масштабируемость
🔒 **Рейтинг безопасности A+** — 15/15 тестов безопасности

---

✨ Возможности
-------------

[](#-возможности)

### Базовый функционал

[](#базовый-функционал)

- ⚡ **Высокая производительность** — до 506k операций/сек (compiled mode)
- 🤖 **Autowiring** — автоматическое разрешение зависимостей
- 🔄 **Lazy Loading** — отложенная инициализация с WeakMap оптимизацией
- 🎨 **Decorators** — декорирование с поддержкой priorities
- ⚡ **Compiled Container** — предкомпиляция со встроенными тегами
- 🏷️ **Tagged Services** — группировка сервисов по меткам
- 💾 **Memory efficient** — 0.478 КБ на сервис
- 🏆 **Лучший memory management** — 0.001 МБ утечек за 15M циклов
- 📦 **PSR-11 compliant** — полная совместимость
- 🎯 **Простой API** — легко начать использовать

### Продвинутые возможности (v2.0+)

[](#продвинутые-возможности-v20)

- 🏷️ **PHP 8+ Attributes** — декларативная конфигурация (#\[Service\], #\[Inject\], #\[Tag\])
- 📊 **Decorator Priorities** — управляемый порядок применения декораторов
- 🔍 **Service Locator** — ограниченный доступ к подмножеству сервисов
- 🔗 **Container Delegation** — поиск сервисов в нескольких контейнерах
- 🔄 **Scoped Containers** — lifecycle management (request, session, и т.д.)
- ⚡ **Async Initialization** — generator-based batch loading
- 📦 **Compiled Tags** — pre-computed tag mappings в compiled container
- 💪 **WeakMap Optimization** — zero memory leaks для lazy loading

📊 Дорожная карта
----------------

[](#-дорожная-карта)

Ознакомьтесь с нашей [дорожной картой](ROADMAP.md), чтобы узнать о планах развития проекта на 2025-2027 годы.

**Ближайшие планы:**

- **v2.1.0** (Март 2026) — Performance Boost с Memory Pool и Smart Caching
- **v2.2.0** (Июнь 2026) — Stability &amp; Bug Fixes с улучшениями API
- **v3.0.0** (Сентябрь 2026) — Next Generation с поддержкой PHP 8.5
- **v3.1.0** (Декабрь 2026) — Framework Integration (Symfony, Laravel, Slim)

---

```
composer require cloud-castle/di-container
```

**Требования:**

- PHP 8.1 или выше
- ext-json
- ext-mbstring

---

🚀 Быстрый старт
---------------

[](#-быстрый-старт)

### Базовое использование

[](#базовое-использование)

```
use CloudCastle\DI\Container;

$container = new Container();

// Регистрация сервисов
$container->set('database', function() {
    return new Database('localhost', 'mydb');
});

// Получение сервисов
$db = $container->get('database');
```

### Autowiring

[](#autowiring)

```
// Включить autowiring
$container->enableAutowiring();

// Автоматическое разрешение зависимостей
class UserRepository {
    public function __construct(
        private Database $database,
        private Logger $logger
    ) {}
}

// Просто получите - все зависимости будут автоматически разрешены!
$repo = $container->get(UserRepository::class);
```

### Lazy Loading

[](#lazy-loading)

Отложить создание сервиса до первого использования:

```
// Сервис ещё не создан
$container->setLazy('heavy_service', fn($c) => new HeavyService());

// Сервис создаётся только при фактическом использовании
$service = $container->get('heavy_service');
$result = $service->doSomething(); // Теперь инициализирован
```

### Decorators с приоритетами

[](#decorators-с-приоритетами)

Добавить функциональность к существующим сервисам:

```
$container->set('logger', fn() => new FileLogger());

// Добавить декораторы с приоритетами (lower = applied first)
$container->decorate('logger', function($logger) {
    return new CachedLogger($logger);
}, priority: 10);

$container->decorate('logger', function($logger) {
    return new MetricsLogger($logger);
}, priority: 5);

$logger = $container->get('logger');
// Порядок: MetricsLogger -> CachedLogger -> FileLogger
```

### PHP 8+ Attributes

[](#php-8-attributes)

Декларативная конфигурация:

```
use CloudCastle\DI\Attribute\Service;
use CloudCastle\DI\Attribute\Inject;
use CloudCastle\DI\Attribute\Tag;

#[Service(id: 'my.logger', tags: ['logging'], lazy: false)]
#[Tag('infrastructure', ['priority' => 10])]
class Logger {
    public function log(string $message): void {
        echo "[LOG] {$message}\n";
    }
}

#[Service]
class UserService {
    public function __construct(
        #[Inject('my.logger')] private object $logger
    ) {}
}

$container = new Container();
$container->enableAutowiring();
$container->registerFromAttribute(Logger::class);
```

### Compiled Container

[](#compiled-container)

Предкомпилировать контейнер для максимальной производительности:

```
$container = new Container();
$container->set('config', fn() => new Config());
$container->set('logger', fn() => new Logger());

// Компилировать
$container->compileToFile(__DIR__ . '/cache/CompiledContainer.php');

// В production использовать compiled версию
require __DIR__ . '/cache/CompiledContainer.php';
$container = new \CloudCastle\DI\Compiled\CompiledContainer();
```

### Tagged Services

[](#tagged-services)

Группировка сервисов по меткам:

```
$container->set('redis', fn() => new RedisCache());
$container->tag('redis', 'cache');

$container->set('memcached', fn() => new MemcachedCache());
$container->tag('memcached', 'cache');

// Получить все сервисы с тегом
$cacheServices = $container->findTaggedServiceIds('cache');
// ['redis', 'memcached']
```

### Service Locator

[](#service-locator)

Ограниченный доступ к сервисам:

```
// Создать локатор только для определённых сервисов
$locator = $container->createServiceLocator(['service1', 'service2']);

// Или создать из тега
$publicLocator = $container->createServiceLocatorFromTag('public');
```

### Scoped Containers

[](#scoped-containers)

Управление lifecycle сервисов:

```
use CloudCastle\DI\ScopedContainer;

$container = new Container();
$container->set('request.data', fn() => new RequestData());

$scoped = new ScopedContainer($container);
$scoped->setScope('request.data', 'request');

// Начать scope
$scoped->beginScope('request');
$data = $scoped->get('request.data'); // Новый instance

$scoped->endScope(); // Очистить scope
```

### Container Delegation

[](#container-delegation)

Поиск сервисов в нескольких контейнерах:

```
$mainContainer = new Container();
$pluginContainer = new Container();

$mainContainer->addDelegate($pluginContainer);

// Сервисы доступны из обоих контейнеров
$service = $mainContainer->get('plugin.service');
```

---

🏆 Производительность
--------------------

[](#-производительность)

### Benchmark Results

[](#benchmark-results)

ОперацияCloudCastleSymfonyLaravelPHP-DIУлучшениеRegister**168,492 оп/с**42,12356,78938,912**+300%**Get (1st)**66,935 оп/с**22,31128,45618,765**+200%**Get (cached)**61,145 оп/с**33,44541,22329,334**+180%**Has**304,132 оп/с**81,03395,67872,456**+275%**### Stress Test Records

[](#stress-test-records)

- **1,746,358 сервисов** — максимум без ошибок
- **500,133 оп/сек** — на 15M операций
- **15,000 уровней DI** — глубина цепочки зависимостей
- **0.001 МБ** — рост памяти за 15M циклов
- **69,032 исключений/сек** — скорость обработки ошибок

---

📖 Документация
--------------

[](#-документация)

Полная документация доступна на 4 языках:

- 🇷🇺 [Русский](documentation/ru/README.md)
- 🇬🇧 [English](documentation/en/README.md)
- 🇩🇪 [Deutsch](documentation/de/README.md)
- 🇫🇷 [Français](documentation/fr/README.md)

📊 Отчёты по тестированию
------------------------

[](#-отчёты-по-тестированию)

Подробные отчёты доступны на 4 языках:

- 🇷🇺 [Русский](reports/ru/README.md) — 8 детальных отчётов
- 🇬🇧 [English](reports/en/README.md) — 3 ключевых отчёта
- 🇩🇪 [Deutsch](reports/de/README.md) — 2 отчёта
- 🇫🇷 [Français](reports/fr/README.md) — 2 отчёта

💡 Примеры
---------

[](#-примеры)

Примеры использования на 4 языках:

- 🇷🇺 [Русский](examples/ru/) — Advanced features
- 🇬🇧 [English](examples/en/) — Basic usage
- 🇩🇪 [Deutsch](examples/de/) — Basic usage
- 🇫🇷 [Français](examples/fr/) — Basic usage

---

🧪 Тестирование
--------------

[](#-тестирование)

```
# Unit тесты
composer test

# Benchmarks
composer benchmark

# Load тесты
composer load-test

# Stress тесты
composer stress-test

# Compiled container тесты
composer compiled-load-test
composer compiled-stress-test

# Все проверки
composer check
```

---

🛠️ Development Tools
--------------------

[](#️-development-tools)

```
# Static analysis
composer phpstan

# Code style
composer phpcs
composer phpcs:fix

# Advanced fixes
composer php-cs-fixer
composer php-cs-fixer:fix

# Refactoring
composer rector
composer rector:fix

# Metrics
composer metrics

# Все фиксы
composer fix
```

---

📝 Лицензия
----------

[](#-лицензия)

MIT License. См. [LICENSE](LICENSE) для деталей.

---

🤝 Участие в разработке
----------------------

[](#-участие-в-разработке)

См. [CONTRIBUTING.md](CONTRIBUTING.md) для деталей.

---

📞 Контакты
----------

[](#-контакты)

- **GitHub:**
- **Issues:**

---

⭐ Благодарности
---------------

[](#-благодарности)

Спасибо всем контрибьюторам и пользователям!

---

**CloudCastle DI Container v2.0** — самый быстрый и функциональный DI контейнер для PHP! 🚀

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance61

Regular maintenance activity

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

214d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/006faf20fd75069a22069898f0bb1983a85731fc0c55b41c41d7d0ae0c80ae96?d=identicon)[zorinalexey](/maintainers/zorinalexey)

---

Top Contributors

[![zorinalexey](https://avatars.githubusercontent.com/u/74205167?v=4)](https://github.com/zorinalexey "zorinalexey (46 commits)")

---

Tags

attributesautowiringcompiled-containerdependency-injectiondi-containerlazy-loadingperformancephpphp8psr-11containerdependency-injectiondiioc

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/cloud-castle-di-container/health.svg)

```
[![Health](https://phpackages.com/badges/cloud-castle-di-container/health.svg)](https://phpackages.com/packages/cloud-castle-di-container)
```

###  Alternatives

[php-di/php-di

The dependency injection container for humans

2.8k48.9M994](/packages/php-di-php-di)[slince/di

A flexible dependency injection container

20260.4k6](/packages/slince-di)[capsule/di

A PSR-11 compliant autowiring dependency injection container.

2857.5k2](/packages/capsule-di)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
