Задать вопрос
alestro
@alestro

Возможно ли в PhpStorme подсветить аргументы конструктора первого аргумента атрибута?

Суть в следующем: у меня есть Атрибут
#[\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
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
При таких требованиях- сейчас нереализуемо.
Разве что написать отдельный атрибут с требуемым перечнем аргументов в конструкторе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы