signo = $signo; $this->callbacks = $callbacks; pcntl_signal($this->signo, [ $this, "onSignal" ]); } public function __destruct() { } /** * Append a handler to the signal * * @param callable $handler * @return void */ public function addHandler(callable $handler):void { $this->callbacks[] = $handler; } /** * Callback for signals * * @param int $signo * @return void */ public function onSignal($signo) { foreach ($this->callbacks as $callback) { if (call_user_func($callback) === true) return; } } }