2022-04-19 02:04:48 +00:00
|
|
|
<?php
|
|
|
|
/** @license MIT
|
|
|
|
* Copyright 2017 J. King, Dustin Wilson et al.
|
|
|
|
* See LICENSE and AUTHORS files for details */
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
2023-03-23 03:33:05 +00:00
|
|
|
|
2022-04-19 02:04:48 +00:00
|
|
|
namespace JKingWeb\Arsse\Context;
|
|
|
|
|
|
|
|
abstract class AbstractContext {
|
|
|
|
protected $props = [];
|
|
|
|
protected $parent = null;
|
|
|
|
|
|
|
|
protected function act(string $prop, int $set, $value) {
|
|
|
|
if ($set) {
|
|
|
|
if (is_null($value)) {
|
|
|
|
unset($this->props[$prop]);
|
|
|
|
$this->$prop = (new \ReflectionClass($this))->getDefaultProperties()[$prop];
|
|
|
|
} else {
|
|
|
|
$this->props[$prop] = true;
|
|
|
|
$this->$prop = $value;
|
|
|
|
}
|
|
|
|
return $this->parent ?? $this;
|
|
|
|
} else {
|
|
|
|
return isset($this->props[$prop]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|