DevCraft Документации
РазработкиDevCraft Dev ToolsСправочникRuntime

WithHandler v1.0.0

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.

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

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

Параметры:

  • $target (object): экземпляр с атрибутами
  • $methodName (string): имя виртуального метода
  • $arguments (array): аргументы (set/append — 1; map — 2)

Исключения:

  • 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-свойства родителей оставались записываемыми.

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