interface iEngine extends BaseIface {
function OClient() : ClientIface;
function OServer() : ServerIface;
}
abstract class caEngine extends BaseClass implements iEngine {
// ++ CONFIG ++ //
abstract protected function ClientClass() : string;
abstract protected function ServerClass() : string;
// -- CONFIG -- //
// ++ OBJECTS ++ //
private $oCli = NULL;
public function OClient() : ClientIface { return $this->oCli ?? ($this->oCli = new ($this->ClientClass())); }
private $oSvr = NULL;
public function OServer() : ServerIface { return $this->oSvr ?? ($this->oSvr = new ($this->ServerClass())); }
// -- OBJECTS -- //
}