CalendarMacrosTrait
Макросы календарной даты (аналог `Carbon::macro()`): расширение API собственными методами без наследования финального класса.
Макрос получает дату первым аргументом, поэтому работают и static-замыкания,
а $this не переприсваивается. Объявленные методы макросом не перекрываются —
PHP вызывает их напрямую, до __call(). Для кода под строгим статанализом
есть типобезопасный вызов callMacro().
Tags
Table of Contents
Methods
- __call() : mixed
- Вызов макроса как метода: `$date->addBusinessDays(3)`.
- callMacro() : mixed
- Явный вызов макроса — без магии, видимый статическим анализаторам.
- flushMacros() : void
- Удалить все зарегистрированные макросы.
- hasMacro() : bool
- Зарегистрирован ли макрос с таким именем.
- macro() : void
- Зарегистрировать (или заменить) макрос.
Methods
__call()
Вызов макроса как метода: `$date->addBusinessDays(3)`.
public
__call(string $name, array<string|int, mixed> $arguments) : mixed
Parameters
- $name : string
-
имя вызванного метода
- $arguments : array<string|int, mixed>
-
аргументы вызова
Tags
Return values
mixed —результат макроса
callMacro()
Явный вызов макроса — без магии, видимый статическим анализаторам.
public
callMacro(string $name, mixed ...$arguments) : mixed
Parameters
- $name : string
-
имя макроса
- $arguments : mixed
-
аргументы после даты
Tags
Return values
mixed —результат макроса
flushMacros()
Удалить все зарегистрированные макросы.
public
static flushMacros() : void
hasMacro()
Зарегистрирован ли макрос с таким именем.
public
static hasMacro(string $name) : bool
Parameters
- $name : string
-
имя метода
Return values
bool —макрос зарегистрирован
macro()
Зарегистрировать (или заменить) макрос.
public
static macro(non-empty-string $name, Closure $macro) : void
Parameters
- $name : non-empty-string
-
имя метода, под которым макрос будет доступен
- $macro : Closure
-
замыкание
fn (CalendarDate $date, mixed ...$args): mixed