phpolar/property-injector

Provides automatic dependency injection for properties.


README

phpolar.svg

Property Injector

Provides automatic dependency injection for properties.

Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require PHP Build Latest and Nightly PHPMD

Quick Start

class Example1
{
    /**
     * Will set this property with the
     * value in the DI container
     * that is registered with 'DEPENDENCY_ID'
     */
    #[Inject("DEPENDENCY_ID")]
    public string $property;
}

class Example2
{
    /**
     * Will set this property with the
     * value in the DI container
     * that is registered with the claass name
     * in the type hint
     */
    #[Inject]
    public SomeDependency $property;
}

class Example3
{
    /**
     * Will ignore protected properties.
     */
    #[Inject]
    protected SomeDependency $property;

    /**
     * Will ignore private properties.
     */
    #[Inject]
    private SomeDependency $property;
}

$injectee = new Example1();
(new PropertyInjector($psr11Container))->inject($injectee);

$injectee->property === $psr11Container->get("DEPENDENCY_ID"); // true

API Documentation

Thresholds

Source Code Size * Memory Usage
2300 B 5.5 kB
  • Note: Does not include comments.