The di component for super-kernel.
Requires
- php: ~8.4.0
- super-kernel/attribute: ~1.0.0
- super-kernel/contract: ~1.0.0
This package is auto-updated.
Last update: 2026-03-27 09:25:02 UTC
README
Super-Kernel DI is a specialized Dependency Injection container designed for the super-kernel framework.
💡 Core Philosophy
This container strictly adheres to PSR-11 but introduces a specific management strategy to ensure performance and architectural clarity:
- Long-lived Object Management: The container is exclusively responsible for managing objects that persist throughout the application lifecycle (e.g., singletons, shared services, configuration).
- Caller Autonomy: In accordance with the PSR-11 meta-document, short-lived objects (request-specific or transient objects) should be managed by the caller, not the container. This prevents the "Service Locator" antipattern and keeps the container overhead minimal.
🛠️ Requirements
- PHP: ^8.4 (utilizing the latest engine features and property hooks)
- Framework: super-kernel core
🚀 Installation
Install the package via Composer:
composer require super-kernel/di
📝 Key Features
- PSR-11 Compliant: Fully compatible with any standards-compliant library.
- Modern PHP Stack: Leveraging PHP 8.4's strict typing and performance optimizations.
- Lightweight Footprint: Focused on long-lived service resolution to reduce memory consumption.
- Alpha Status: Under active development, open for architectural feedback.
📖 Quick Usage
As a component of the super-kernel ecosystem, the DI container is typically initialized by the framework kernel. For manual usage:
use SuperKernel\Context\ApplicationContext; use SuperKernel\Contract\ApplicationInterface; ApplicationContext::getContainer()->get(ApplicationInterface::class)->run();
⚠️ Project Status
This project is currently in its Alpha stage:
- The API is unstable and subject to breaking changes.
- Production use is not recommended at this time.
- We encourage developers to experiment and provide feedback via Issues or Pull Requests.
🤝 Contributing
Contributions are what make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
⚖️ License
Distributed under the MIT License.Copyright © 2024-2026 super-kernel.
See the LICENSE file for more information.