morus-client.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. require dirname(__FILE__) . '/vendor/autoload.php';
  3. function markdown2html($server_uri, $options, $payload, $sanitize)
  4. {
  5. global $logger;
  6. $client = new Palm\Morus\V1\MarkdownClient($server_uri, $options);
  7. $request = new Palm\Morus\V1\MarkdownToHtmlRequest();
  8. $request->setPayload($payload);
  9. $request->setSanitize($sanitize);
  10. list($response, $status) = $client->ToHtml($request)->wait();
  11. if ($status->code !== Grpc\STATUS_OK) {
  12. $logger->error("markdown to html", ['code' => $status->code, 'details' => $status->details]);
  13. exit(1);
  14. }
  15. $logger->info("markdown to html", ['body' => $response->getPayload()]);
  16. }
  17. $logger = new Monolog\Logger('palm');
  18. $logger->pushHandler(new Monolog\Handler\StreamHandler('php://stdout', Monolog\Level::Debug));
  19. if (empty($argv[1])) {
  20. $logger->error("USAGE: " . $argv[0] . " CONFIG_FILE");
  21. exit(1);
  22. }
  23. $logger->debug("load config from", ['file' => $argv[1]]);
  24. $config = json_decode(file_get_contents($argv[1]));
  25. $server_uri = $config->{'server'}->{'host'} . ":" . $config->{'server'}->{'port'};
  26. // $server_options = [
  27. // 'credentials' => Grpc\ChannelCredentials::createInsecure(),
  28. // ];
  29. $server_options = [
  30. 'credentials' => \Grpc\ChannelCredentials::createSsl(
  31. file_get_contents($config->{'ssl'}->{'ca-file'}),
  32. file_get_contents($config->{'ssl'}->{'key-file'}),
  33. file_get_contents($config->{'ssl'}->{'cert-file'})
  34. ),
  35. // 'grpc.ssl_target_name_override' => $config->{'server'}->{'host'},
  36. 'grpc.default_authority' => $config->{'ssl'}->{'authority'}
  37. ];
  38. $logger->info("connect to", ['server' => $server]);
  39. markdown2html($server_uri, $server_options, "# Hi, Palm!", true);