*/ class model { /** * Постфикс */ public const POSTFIX = '_model'; /** * Конструктор */ public function __construct() { } /** * Записать свойство * * @param string $name Название * @param mixed $value Содержимое * * @return void */ public function __set(string $name, mixed $value = null): void { match ($name) { default => throw new exception("Свойство \"\$$name\" не найдено", 404) }; } /** * Прочитать свойство * * @param string $name Название * * @return mixed Содержимое */ public function __get(string $name): mixed { return match ($name) { default => throw new exception("Свойство \"\$$name\" не обнаружено", 404) }; } /** * Проверить свойство на инициализированность * * @param string $name Название * * @return bool Инициализировано свойство? */ public function __isset(string $name): bool { return match ($name) { default => isset($this->{$name}) }; } /** * Удалить свойство * * @param string $name Название * * @return void */ public function __unset(string $name): void { match ($name) { default => (function () use ($name) { // Удаление unset($this->{$name}); })() }; } }