biurad/dependency-injection

A library that allows you to standardize and centralize the way objects are constructed in your application.

v0.1.0 2020-11-24 02:31 UTC

This package is auto-updated.

Last update: 2022-01-11 12:41:51 UTC


README

Latest Version Software License Workflow Status Code Maintainability Coverage Status Quality Score Sponsor development of this project

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.

📦 Installation & Basic Usage

This project requires PHP 7.2 or higher. The recommended way to install, is via Composer. Simply run:

$ composer require biurad/dependency-injection

How To Use

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.

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));
    }
}

📓 Documentation

For in-depth documentation before using this library. Full documentation on advanced usage, configuration, and customization can be found at docs.biurad.com.

⏫ Upgrading

Information on how to upgrade to newer versions of this library can be found in the UPGRADE.

🏷️ Changelog

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.

🛠️ Maintenance & Support

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.

👷‍♀️ Contributing

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.

🧪 Testing

$ composer test

This will tests biurad/php-dependency-injection will run against PHP 7.2 version or higher.

👥 Credits & Acknowledgements

🙌 Sponsors

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.

📄 License

biurad/php-dependency-injection is licensed under the BSD-3 license. See the LICENSE file for more details.

🏛️ Governance

This project is primarily maintained by Divine Niiquaye Ibok. Members of the Biurad Lap Leadership Team may occasionally assist with some of these duties.

🗺️ Who Uses It?

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