phpolar/property-injector

Provides automatic dependency injection for properties.

1.1.0 2023-09-02 19:49 UTC

This package is auto-updated.

Last update: 2025-04-30 01:02:55 UTC


README

Property Injector

Provides automatic dependency injection for properties.

Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require Weekly Check

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.