biurad/php-dependency-injection is a powerful tool for managing class dependencies and performing dependency injection for PHP 7.2+ created by Divine Niiquaye based on The Nette DI. This library provides a fancy phrase that essentially means this: class dependencies are "injected" into the class via the constructor or, in some cases, "setter" methods.
This project requires PHP 7.2 or higher. The recommended way to install, is via Composer. Simply run:
$ composer require biurad/dependency-injection
A deep understanding of the Dependency Injection is essential to building a powerful, large application, as well as for contributing to this library core itself. This README is focused on the new features added to Nette Di.
This dependency is an extended version of Nette Di which has been simplified for developer's convenient. With this bridge, more features have been implemented to have a fast and flexible Dependency Injection Container.
Container implementation is fully compatible with PSR-11 Container.
You can always access container directly in your code by requesting Psr\Container\ContainerInterface
:
use Psr\Container\ContainerInterface;
class HomeContoller
{
public function index(ContainerInterface $container)
{
var_dump($container->get(App\Kernel::class));
}
}
For in-depth documentation before using this library. Full documentation on advanced usage, configuration, and customization can be found at docs.biurad.com.
Information on how to upgrade to newer versions of this library can be found in the UPGRADE.
SemVer is followed closely. Minor and patch releases should not introduce breaking changes to the codebase; See CHANGELOG for more information on what has changed recently.
Any classes or methods marked @internal
are not intended for use outside of this library and are subject to breaking changes at any time, so please avoid using them.
When a new major version is released (1.0
, 2.0
, etc), the previous one (0.19.x
) will receive bug fixes for at least 3 months and security updates for 6 months after that new release comes out.
(This policy may change in the future and exceptions may be made on a case-by-case basis.)
Professional support, including notification of new releases and security updates, is available at Biurad Commits.
To report a security vulnerability, please use the Biurad Security. We will coordinate the fix and eventually commit the solution in this project.
Contributions to this library are welcome, especially ones that:
- Improve usability or flexibility without compromising our ability to adhere to ???.
- Optimize performance
- Fix issues with adhering to ???.
- ???.
Please see CONTRIBUTING for additional details.
$ composer test
This will tests biurad/php-dependency-injection will run against PHP 7.2 version or higher.
Are you interested in sponsoring development of this project? Reach out and support us on Patreon or see https://biurad.com/sponsor for a list of ways to contribute.
biurad/php-dependency-injection is licensed under the BSD-3 license. See the LICENSE
file for more details.
This project is primarily maintained by Divine Niiquaye Ibok. Members of the Biurad Lap Leadership Team may occasionally assist with some of these duties.
You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us an email or message mentioning this library. We publish all received request's at https://patreons.biurad.com.
Check out the other cool things people are doing with biurad/php-dependency-injection
: https://packagist.org/packages/biurad/dependency-injection/dependents