DevCraft Документации
СправочникRuntime

WithHandler v1.0.1

Runtime: метаданные #[With]/#[WithItem], handles() и call().

Описание: Статический runtime-хелпер для виртуальных fluent-методов. Строит и кэширует метаданные операций по runtime-классу, проверяет типы дескрипторов и мутирует свойства через closures, привязанные к declaring class.

Namespace: Devcraft\Runtime

С версии: 1.0.0

См. также:

Методы

static handles(object $target, string $methodName): bool

Описание: Есть ли виртуальная операция для $methodName (регистронезависимо) на классе $target.

Параметры:

ПараметрТипОписание
$targetobjectЭкземпляр с атрибутами #[With] / #[WithItem]
$methodNamestringИмя виртуального метода

Возвращает: bool

static call(object $target, string $methodName, array $arguments): object

Описание: Выполняет виртуальную операцию и возвращает $target (для chaining).

Параметры:

ПараметрТипОписание
$targetobjectЭкземпляр с атрибутами
$methodNamestringИмя виртуального метода
$argumentsarrayАргументы (set/append — 1; map — 2)

Возвращает: object — тот же $target

Исключения:

  • BadMethodCallException — неизвестный метод
  • ArgumentCountError — неверное число аргументов
  • TypeError — значение не проходит дескриптор
  • LogicException — битая конфигурация / неинициализированный array

Виды операций

KindИсточникАргументы
set#[With]($value)
append#[WithItem] с 1 дескриптором($item)
map#[WithItem] с 2 дескрипторами($key, $value)

Кэш

Метаданные строятся один раз на class-string и переиспользуются. Writers — closures bound to declaring class, чтобы private-свойства родителей оставались записываемыми.

На этой странице