addListener("prompt", function ($event, $shell) { $name = $shell->getContextPath(); $shell->setPrompt("shell{$name}> "); }); $root = new Context(); $root->addCommand("test", function () { echo "It works!\n"; }); $root->addCommand("context", function ($name) { $context = new Context($name); $context->name = $name; return $context; }); $shell->pushContext($root); $shell->run();