pushContext($context); $this->updatePrompt(); $t1 = $this->addTimer(5000, function () { echo "5 seconds\n"; }); $app = $this; $t2 = $this->addTimer(15000, function () use ($t1, $app) { echo "Removing timers...\n"; $app->removeTimer($t1); }); } protected function updatePrompt() { $this->setPrompt("test[{$this->seq}]: "); } protected function onCommand($buffer) { $this->seq++; $this->updatePrompt(); parent::onCommand($buffer); } } $myShell = new MyShell(); $myShell->run(); echo "Exiting\n";