Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Di Laravel Package

aura/di

Aura.Di is a PSR-11 dependency injection container for PHP 8+ with constructor and setter injection, interface and trait awareness, configurable wiring with inheritance, and support for serialization. Installable via Composer and fully documented.

View on GitHub
Deep Wiki
Context7

A serializable dependency injection container with constructor and setter injection, interface and trait awareness, configuration inheritance, and much more.

Frequently asked questions about Di
Can I use Aura.Di as a drop-in replacement for Laravel’s native container?
Yes, Aura.Di fully implements PSR-11, so it can replace Laravel’s container while maintaining compatibility with Laravel’s service providers, bindings, and Facades. You can wrap Laravel’s container with Aura.Di’s Resolver for a hybrid approach, preserving existing configurations while adding advanced features.
How do I install Aura.Di in a Laravel project?
Run `composer require aura/di` to install via Composer. The package is PSR-4 autoloadable, so no additional configuration is needed. For Laravel 8+, ensure your PHP version is 8.0+ to meet Aura.Di’s requirements.
Does Aura.Di support Laravel’s Facades and service providers?
Yes, Facades and service providers remain unaffected. Aura.Di’s PSR-11 compliance ensures it integrates with Laravel’s existing container resolution. You can even wrap Laravel’s container with Aura.Di’s Resolver to extend functionality without breaking existing code.
What are the benefits of using Aura.Di’s attribute-based DI (#[Service], #[Instance])?
Attribute-based DI provides declarative configuration, reducing boilerplate code. It aligns with modern Laravel practices (e.g., Laravel 9+ attributes) and enables compiled blueprints for faster dependency resolution. This is especially useful for microservices or performance-critical applications.
Will Aura.Di work with Laravel’s caching system (e.g., config/cache.php)?
Aura.Di’s compiled blueprints can be cached separately or integrated into Laravel’s caching system. You may need a custom Artisan command to generate and cache blueprints during deployment. The package’s serialization support ensures stateless, cache-friendly containers.
Does Aura.Di support PHPUnit testing in Laravel?
Yes, Aura.Di works with PHPUnit 10+ and supports stateless testing via serialization. However, you may need to update test suites to account for Aura.Di’s attribute-based configurations or compiled blueprints, especially if tests rely on Laravel’s container mocking.
How does Aura.Di handle legacy Laravel DI configurations (e.g., app()->bind())?
Aura.Di can coexist with legacy configurations. Use a hybrid approach by wrapping Laravel’s container with Aura.Di’s Resolver, allowing existing `bind()` and `singleton()` calls to persist while new services leverage Aura.Di’s attributes or programmatic setup.
Is Aura.Di suitable for Lumen or lightweight Laravel applications?
Absolutely. Aura.Di’s lightweight design and PSR-11 compliance make it ideal for Lumen or microservices where DI overhead is critical. Its compiled blueprints reduce resolution latency, improving performance in high-traffic or background job scenarios.
Are there performance trade-offs when using compiled blueprints?
Compiled blueprints significantly speed up dependency resolution but add build-time complexity. Benchmark your application to evaluate trade-offs, especially in latency-sensitive environments. Use `bin/auradi scan` to generate blueprints during deployment.
What alternatives to Aura.Di exist for Laravel DI, and why choose this one?
Alternatives include Laravel’s native container, PHP-DI, or Symfony’s DependencyInjection. Aura.Di stands out for its PHP 8+ attribute support, serialization, and seamless Laravel integration. It’s a modern, PSR-11-compliant choice for teams already using PHP 8+ and seeking advanced DI features.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata