28 lines
768 B
PHP
28 lines
768 B
PHP
<?php
|
|
/** @license MIT
|
|
* Copyright 2017 J. King, Dustin Wilson et al.
|
|
* See LICENSE and AUTHORS files for details */
|
|
|
|
declare(strict_types=1);
|
|
|
|
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]);
|
|
}
|
|
}
|
|
}
|