public function run(array $argv = null) { $that = $this; $commander = new Router(); $main = $commander->add('[<socket>] [--no-interaction | -n]', function ($args) use($that) { $that->start($args); }); $commander->add('[--help | -h]', function () use($main) { $bin = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0] : 'psocksd'; echo 'Welcome to psocksd, the PHP SOCKS server daemon!' . PHP_EOL; echo 'Usage: ' . $bin . ' ' . $main . PHP_EOL; }); try { $commander->handleArgv($argv); } catch (NoRouteFoundException $e) { echo 'Invalid command usage. Run with "--help"' . PHP_EOL; } }