Skip to content

phpolar/property-injector

Repository files navigation

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

Thresholds

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

About

Provides automatic dependency injection for properties.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages