blob: 3b017523a3eec8ad927718c04e11ae87a41ed0d8 [file] [log] [blame]
<?php
error_reporting(E_ALL);
require_once __DIR__ . '/../../vendor/autoload.php';
$opts = getopt(
'h::',
[
'port::',
'domain-socket::',
'pipe::',
'server-type::',
'transport::',
'protocol::',
'multiplex::',
'abstract-namespace::',
'ssl::',
'zlib::',
'processor-events::',
'workers::',
]
);
if (isset($opts['h'])) {
echo <<<HELP
-h | --help produce help message
--port=arg (9090) Port number to listen
--domain-socket=arg Unix Domain Socket (e.g. /tmp/ThriftTest.thrift)
--pipe=arg Windows Named Pipe (e.g. MyThriftPipe)
--server-type=arg (simple) type of server, "simple", "thread-pool",
"threaded", or "nonblocking"
--transport=arg (buffered) transport: buffered, framed, http, anonpipe, zlib
--protocol=arg (binary) protocol: binary, compact, header, json
--multiplex Add TMultiplexedProtocol service name "ThriftTest"
--abstract-namespace Create the domain socket in the Abstract Namespace
(no connection with filesystem pathnames)
--ssl Encrypted Transport using SSL
--zlib Wrapped Transport using Zlib
--processor-events processor-events
-n=arg | --workers=arg (=4) Number of thread pools workers. Only valid for
thread-pool server type
HELP;
exit(0);
}
$port = $opts['port'] ?? 9090;
$transport = $opts['transport'] ?? 'buffered';
$loader = new Thrift\ClassLoader\ThriftClassLoader();
$loader->registerDefinition('ThriftTest', __DIR__ . '/../../lib/php/test/Resources/packages/phpcm');
$loader->register();
$sslOptions = \stream_context_create(
[
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]
);
require_once __DIR__ . '/Handler.php';
switch ($transport) {
case 'framed':
$serverTransportFactory = new \Thrift\Factory\TFramedTransportFactory();
break;
default:
$serverTransportFactory = new \Thrift\Factory\TTransportFactory();
}
$serverTransport = new \Thrift\Server\TServerSocket('localhost', $port);
$handler = new Handler();
$processor = new ThriftTest\ThriftTestProcessor($handler);
$server = new \Thrift\Server\TSimpleServer(
$processor,
$serverTransport,
$serverTransportFactory,
$serverTransportFactory,
new \Thrift\Factory\TBinaryProtocolFactory(),
new \Thrift\Factory\TBinaryProtocolFactory()
);
echo "Starting the Test server...\n";
$server->serve();