registerDefinition('ThriftTest', __DIR__ . '/gen-php-classmap'); $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(); } switch ($protocol) { case 'binary': $protocolFactory = new \Thrift\Factory\TBinaryProtocolFactory(false, true); break; case 'accel': if (!function_exists('thrift_protocol_write_binary')) { fwrite(STDERR, "Acceleration extension is not loaded\n"); exit(1); } $protocolFactory = new TBinaryProtocolAcceleratedFactory(); break; case 'compact': $protocolFactory = new \Thrift\Factory\TCompactProtocolFactory(); break; case 'json': $protocolFactory = new \Thrift\Factory\TJSONProtocolFactory(); break; default: fwrite(STDERR, "--protocol must be one of {binary|compact|json|accel}\n"); exit(1); } // `localhost` may resolve to an IPv6-only listener in newer PHP/runtime combinations, // while some cross-test clients still connect via 127.0.0.1. Bind explicitly to IPv4. $serverTransport = new \Thrift\Server\TServerSocket('127.0.0.1', $port); $handler = new Handler(); $processor = new ThriftTest\ThriftTestProcessor($handler); $server = new \Thrift\Server\TSimpleServer( $processor, $serverTransport, $serverTransportFactory, $serverTransportFactory, $protocolFactory, $protocolFactory ); echo "Starting the Test server...\n"; $server->serve();