'); } function setupLogging() { error_reporting(E_ALL | E_STRICT); set_error_handler('errorHandler'); $formatter = new LineFormatter("[%datetime%] %level_name%: %message% %context% %extra%\n"); $formatter->includeStacktraces(true); $formatter->ignoreEmptyContextAndExtra(true); $handler = new StreamHandler(STDERR); $handler->setFormatter($formatter); $logger = new Logger('php language server'); $logger->pushHandler($handler); ErrorHandler::register($logger, false); } setupLogging(); @cli_set_process_title('PHP Language Server'); if (!empty($options['tcp'])) { $address = $options['tcp']; $socket = stream_socket_client('tcp://' . $address, $errno, $errstr); if ($socket === false) { fwrite(STDERR, "Could not connect to language client. Error $errno\n"); fwrite(STDERR, "$errstr\n"); exit(1); } $inputStream = $outputStream = $socket; } else { $inputStream = STDIN; $outputStream = STDOUT; } stream_set_blocking($inputStream, false); $server = new LanguageServer(new ProtocolStreamReader($inputStream), new ProtocolStreamWriter($outputStream)); Loop\run();