Суть в следующем: у меня есть Атрибут
#[\Attribute(\Attribute::TARGET_PROPERTY)] class Cast
{
/**
* @template T of CasterInterface
* @param class-string<T> $caster
*/
public function __construct(
private readonly string $caster,
private readonly array $args = []
){
}
public function __invoke(mixed $prop): mixed
{
return (new $this->caster(...$this->args))->cast($prop);
}
}
Есть класс
class JsonCaster implements CasterInterface
{
public function __construct(
private readonly bool $associative = false,
private readonly int $depth = 512,
private readonly int $flags = 0
) {
}
public function cast(mixed $castable): array
{
return json_decode($castable, $this->associative, $this->depth, $this->flags);
}
}
И есть дтошка, куда вешаю атрибут
class CreatePostDto
{
#[Cast(caster: Cast\JsonCaster::class, args: [true])]
public readonly array $content;
}
Возможно ли сделать так, что бы для атрибута
Cast
вместо аргумента
args
подсвечивались аргументы конструктора
JsonCaster