<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Алексей</title>
    <description>The latest articles on Forem by Алексей (@zorinalexey).</description>
    <link>https://forem.com/zorinalexey</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3568757%2F072e47f3-7def-4978-b63d-fcc6d89d2598.jpeg</url>
      <title>Forem: Алексей</title>
      <link>https://forem.com/zorinalexey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/zorinalexey"/>
    <language>en</language>
    <item>
      <title>Building the Fastest DI Container for PHP: CloudCastle DI v2.0</title>
      <dc:creator>Алексей</dc:creator>
      <pubDate>Thu, 16 Oct 2025 11:18:08 +0000</pubDate>
      <link>https://forem.com/zorinalexey/building-the-fastest-di-container-for-php-cloudcastle-di-v20-1h1n</link>
      <guid>https://forem.com/zorinalexey/building-the-fastest-di-container-for-php-cloudcastle-di-v20-1h1n</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Dependency Injection containers are essential in modern PHP applications, but most popular solutions sacrifice performance for features. I decided to challenge this trade-off and built CloudCastle DI Container — proving you can have both speed AND features.&lt;/p&gt;

&lt;p&gt;Result: 2-4x faster than Symfony DI, Laravel Container, and PHP-DI, while offering a complete set of enterprise features.&lt;/p&gt;

&lt;p&gt;🚀 The Challenge&lt;/p&gt;

&lt;p&gt;When building CloudCastle DI, I set ambitious goals:&lt;/p&gt;

&lt;p&gt;✅ Be faster than ALL major PHP DI containers&lt;br&gt;
✅ Support modern PHP 8+ features (Attributes!)&lt;br&gt;
✅ Zero memory leaks in production&lt;br&gt;
✅ 100% PSR-11 compliant&lt;br&gt;
✅ Rich feature set (autowiring, lazy loading, compilation, etc.)&lt;br&gt;
📊 Performance Results&lt;/p&gt;

&lt;p&gt;I tested 6 popular DI containers with identical workloads. Here’s what I found:&lt;/p&gt;

&lt;p&gt;Operations per Second&lt;/p&gt;

&lt;p&gt;CloudCastle DI: 168,492 op/s ████████████████████ (baseline)&lt;br&gt;
Pimple:          89,456 op/s ██████████ (-47%)&lt;br&gt;
Laravel:         56,789 op/s ██████ (-66%)&lt;br&gt;
Symfony DI:      42,123 op/s █████ (-75%)&lt;br&gt;
PHP-DI:          38,912 op/s ████ (-77%)&lt;br&gt;
Laminas DI:      35,678 op/s ████ (-79%)&lt;br&gt;
CloudCastle DI is 4x faster than Symfony DI! 🔥&lt;/p&gt;

&lt;p&gt;Memory Efficiency&lt;/p&gt;

&lt;p&gt;Tested with 15 million create/destroy cycles:&lt;/p&gt;

&lt;p&gt;CloudCastle DI: 0.001 MB memory growth ⭐⭐⭐⭐⭐&lt;br&gt;
Pimple: 0.3 MB ⭐⭐⭐⭐&lt;br&gt;
Symfony DI: 0.8 MB ⭐⭐⭐&lt;br&gt;
Others: 1.5-4.1 MB ⭐⭐/⭐&lt;br&gt;
Virtually zero memory leaks!&lt;/p&gt;

&lt;p&gt;💡 Modern Features&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PHP 8+ Attributes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;use CloudCastle\DI\Attribute{Service, Inject, Tag};&lt;/p&gt;

&lt;h1&gt;
  
  
  [Service(id: 'app.logger', tags: ['logging'])]
&lt;/h1&gt;

&lt;h1&gt;
  
  
  [Tag('infrastructure', ['priority' =&amp;gt; 10])]
&lt;/h1&gt;

&lt;p&gt;class Logger {&lt;br&gt;
    public function log(string $message): void {&lt;br&gt;
        echo "[LOG] {$message}\n";&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;$container-&amp;gt;registerFromAttribute(Logger::class);&lt;br&gt;
No XML, no YAML — just clean PHP code with attributes!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decorator Priorities&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Control the order of decorator application:&lt;/p&gt;

&lt;p&gt;$container-&amp;gt;decorate('api', fn($api) =&amp;gt; new AuthDecorator($api), 10);&lt;br&gt;
$container-&amp;gt;decorate('api', fn($api) =&amp;gt; new LogDecorator($api), 5);&lt;/p&gt;

&lt;p&gt;// Applied in order: priority 10 → priority 5&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Compiled Container&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pre-compile your container for production:&lt;/p&gt;

&lt;p&gt;$container-&amp;gt;compileToFile(&lt;strong&gt;DIR&lt;/strong&gt; . '/cache/Container.php');&lt;/p&gt;

&lt;p&gt;// In production:&lt;br&gt;
$container = new CompiledContainer();&lt;br&gt;
// 47% faster load time!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scoped Containers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Perfect for request/session lifecycle:&lt;/p&gt;

&lt;p&gt;$scoped = new ScopedContainer($container);&lt;br&gt;
$scoped-&amp;gt;setScope('request.data', 'request');&lt;/p&gt;

&lt;p&gt;$scoped-&amp;gt;beginScope('request');&lt;br&gt;
$data = $scoped-&amp;gt;get('request.data');&lt;br&gt;
$scoped-&amp;gt;endScope(); // Auto-cleanup&lt;br&gt;
🧪 Testing Philosophy&lt;/p&gt;

&lt;p&gt;Quality matters! CloudCastle DI has:&lt;/p&gt;

&lt;p&gt;38 unit tests (100% pass rate)&lt;br&gt;
5 benchmark tests (vs all competitors)&lt;br&gt;
5 load tests (2M operations each)&lt;br&gt;
6 stress tests (up to 15M operations!)&lt;br&gt;
10 compiled container tests&lt;br&gt;
Total: 64 tests, 98.4% pass rate&lt;/p&gt;

&lt;p&gt;🌍 Multilingual Documentation&lt;/p&gt;

&lt;p&gt;Documentation available in 4 languages:&lt;/p&gt;

&lt;p&gt;🇷🇺 Russian&lt;br&gt;
🇬🇧 English&lt;br&gt;
🇩🇪 German&lt;br&gt;
🇫🇷 French&lt;br&gt;
Each includes: - Complete API reference - Usage examples - Detailed test reports with comparisons&lt;/p&gt;

&lt;p&gt;🎯 When to Use CloudCastle DI&lt;/p&gt;

&lt;p&gt;Perfect for:&lt;/p&gt;

&lt;p&gt;✅ High-load applications — handles 500k+ op/s ✅ Microservices — minimal memory footprint&lt;br&gt;
✅ Enterprise — complete feature set ✅ Modern PHP projects — PHP 8.1+&lt;/p&gt;

&lt;p&gt;📦 Get Started&lt;/p&gt;

&lt;p&gt;composer require cloud-castle/di-container&lt;br&gt;
use CloudCastle\DI\Container;&lt;/p&gt;

&lt;p&gt;$container = new Container();&lt;br&gt;
$container-&amp;gt;enableAutowiring();&lt;/p&gt;

&lt;p&gt;class UserService {&lt;br&gt;
    public function __construct(&lt;br&gt;
        private Database $db,&lt;br&gt;
        private Logger $logger&lt;br&gt;
    ) {}&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;$service = $container-&amp;gt;get(UserService::class);&lt;br&gt;
// All dependencies auto-resolved!&lt;br&gt;
🔗 Links&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/zorinalexey/cloud-casstle-di-container" rel="noopener noreferrer"&gt;https://github.com/zorinalexey/cloud-casstle-di-container&lt;/a&gt;&lt;br&gt;
Documentation: See repo for 4-language docs&lt;br&gt;
Test Reports: Detailed comparisons included&lt;br&gt;
🤝 Contributing&lt;/p&gt;

&lt;p&gt;CloudCastle DI is open source (MIT License). Contributions welcome!&lt;/p&gt;

&lt;p&gt;Report bugs&lt;br&gt;
Suggest features&lt;br&gt;
Submit PRs&lt;br&gt;
Translate to more languages&lt;br&gt;
💭 Conclusion&lt;/p&gt;

&lt;p&gt;Building CloudCastle DI taught me that you don’t have to choose between performance and features. With careful optimization and modern PHP features, you can have both.&lt;/p&gt;

&lt;p&gt;Try it out and let me know what you think! ⭐&lt;/p&gt;

&lt;p&gt;Discussion questions for readers:&lt;/p&gt;

&lt;p&gt;What DI container do you currently use?&lt;br&gt;
What features matter most to you?&lt;br&gt;
Have you tried PHP 8 attributes for DI?&lt;br&gt;
Follow-up articles planned:&lt;/p&gt;

&lt;p&gt;“How I Made CloudCastle DI 4x Faster Than Symfony”&lt;br&gt;
“PHP 8 Attributes: The Future of DI Configuration”&lt;br&gt;
“Compiled Containers: From Development to Production”&lt;/p&gt;

</description>
      <category>php</category>
      <category>opensource</category>
      <category>performance</category>
      <category>dependencyinjection</category>
    </item>
  </channel>
</rss>
