mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-23 17:12:41 +00:00
28 lines
767 B
PHP
28 lines
767 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]);
|
||
|
}
|
||
|
}
|
||
|
}
|