1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
<?php
declare(strict_types=1);
namespace DI\Test\IntegrationTest\Definitions\AttributesTest;
use DI\Attribute\Inject;
use stdClass;
class NonAnnotatedClass
{
}
class AutowiredClass
{
public stdClass $entry;
public function __construct(stdClass $entry)
{
$this->entry = $entry;
}
}
class ConstructorInjection
{
public $value;
public string $scalarValue;
public stdClass $typedValue;
public ?stdClass $typedOptionalValue;
public ?stdClass $typedOptionalValueDefaultNull;
/** @var stdClass&\ProxyManager\Proxy\LazyLoadingInterface */
public $lazyService;
public stdClass $attribute;
public string $optionalValue;
#[Inject(['value' => 'foo', 'scalarValue' => 'foo', 'lazyService' => 'lazyService'])]
public function __construct(
$value,
string $scalarValue,
\stdClass $typedValue,
\stdClass $lazyService,
#[Inject('attribute')]
\stdClass $attribute,
\stdClass $typedOptionalValue = null,
?\stdClass $typedOptionalValueDefaultNull = null,
string $optionalValue = 'hello'
) {
$this->value = $value;
$this->scalarValue = $scalarValue;
$this->typedValue = $typedValue;
$this->typedOptionalValue = $typedOptionalValue;
$this->typedOptionalValueDefaultNull = $typedOptionalValueDefaultNull;
$this->lazyService = $lazyService;
$this->attribute = $attribute;
$this->optionalValue = $optionalValue;
}
}
class PropertyInjection
{
#[Inject(name: 'foo')]
public $value;
#[Inject('foo')]
public $value2;
#[Inject]
public stdClass $entry;
#[Inject('lazyService')]
public $lazyService;
}
class MethodInjection
{
public $value;
public $scalarValue;
public $typedValue;
public $typedOptionalValue;
public $typedOptionalValueDefaultNull;
/** @var \ProxyManager\Proxy\LazyLoadingInterface */
public $lazyService;
public stdClass $attribute;
public $optionalValue;
#[Inject(['value' => 'foo', 'scalarValue' => 'foo', 'lazyService' => 'lazyService'])]
public function method(
$value,
string $scalarValue,
$untypedValue,
\stdClass $lazyService,
#[Inject('attribute')]
stdClass $attribute,
\stdClass $typedOptionalValue = null,
?\stdClass $typedOptionalValueDefaultNull = null,
$optionalValue = 'hello'
) {
$this->value = $value;
$this->scalarValue = $scalarValue;
$this->untypedValue = $untypedValue;
$this->typedOptionalValue = $typedOptionalValue;
$this->typedOptionalValueDefaultNull = $typedOptionalValueDefaultNull;
$this->lazyService = $lazyService;
$this->attribute = $attribute;
$this->optionalValue = $optionalValue;
}
}
|