Singleton - тоже плохая практика
class Single
{
public array $data = [];
public static $instance;
PRIVATE function __construct()
{
}
public static function getInstance()
{
if (empty(self::$instance)) {
self::$instance = new Single();
}
return self::$instance;
}
public function __get(string $key)
{
return $this->data[$key]??null;
}
public function __set(string $key, $value)
{
$this->data[$key] = $value;
}
}
class A
{
public static function tryW()
{
Single::getInstance()->some = 1;
}
}
class B
{
public static function tryR()
{
var_dump(Single::getInstance()->some);
}
}
$a = new A();
$a->tryW();
$b = new B();
$b->tryR();