PHP 是一种广泛使用的服务器端脚本语言,常用于开发 Web 应用程序和 API 接口。PHP 接口可以分为以下几种类型:
php
// 获取用户信息
$app->get('/users/{id}', function ($request, $response, $args) {
$userId = $args['id'];
// 查询数据库并返回用户信息
return $response->withJson(['id' => $userId, 'name' => 'John Doe']);
});
SoapClient
和 SoapServer
类。示例: ```php // 创建 SOAP 服务端 $server = new SoapServer("example.wsdl"); $server->setClass("MyService"); $server->handle();
// 创建 SOAP 客户端 $client = new SoapClient("example.wsdl"); $result = $client->__soapCall("getUser", [1]); ```
webonyx/graphql-php
)。示例: ```php use GraphQL\Type\Definition\ObjectType; use GraphQL\Type\Definition\Type; use GraphQL\GraphQL;
$queryType = new ObjectType([ 'name' => 'Query', 'fields' => [ 'user' => [ 'type' => $userType, 'args' => [ 'id' => Type::nonNull(Type::int()), ], 'resolve' => function ($root, $args) { return getUserById($args['id']); } ] ] ]);
$schema = new \GraphQL\Type\Schema([ 'query' => $queryType ]);
$rawInput = file_get_contents('php://input'); $input = json_decode($rawInput, true); $query = $input['query']; $result = GraphQL::executeQuery($schema, $query); ```
xmlrpc
扩展或第三方库(如 jsonrpc
)。示例: ```php // 创建 RPC 服务端 function add($x, $y) { return $x + $y; }
$server = xmlrpc_server_create(); xmlrpc_server_register_method($server, "add", "add");
$request = file_get_contents('php://input'); $response = xmlrpc_server_call_method($server, $request, null); echo $response;
// 创建 RPC 客户端 $client = new xmlrpc_client("http://example.com/rpc"); $message = new xmlrpcmsg("add", [new xmlrpcval(1, "int"), new xmlrpcval(2, "int")]); $response = $client->send($message); ```
Ratchet
)。示例: ```php use Ratchet\MessageComponentInterface; use Ratchet\ConnectionInterface;
class Chat implements MessageComponentInterface { public function onOpen(ConnectionInterface $conn) { // 新连接 }
public function onMessage(ConnectionInterface $from, $msg) {
// 处理消息
}
public function onClose(ConnectionInterface $conn) {
// 连接关闭
}
public function onError(ConnectionInterface $conn, \Exception $e) {
// 错误处理
}
}
$app = new Ratchet\App('localhost', 8080); $app->route('/chat', new Chat); $app->run(); ```
grpc/grpc
)。示例: ```php // 定义 gRPC 服务 service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} }
// 实现 gRPC 服务端 class GreeterService extends Greeter\GreeterService { public function SayHello(HelloRequest $request): HelloReply { $name = $request->getName(); return new HelloReply(['message' => 'Hello ' . $name]); } }
// 创建 gRPC 客户端 $client = new Greeter\GreeterClient('localhost:50051', [ 'credentials' => Grpc\ChannelCredentials::createInsecure(), ]);
$request = new HelloRequest(); $request->setName('World'); list($reply, $status) = $client->SayHello($request)->wait(); ```
php
// 自定义 API 示例
if ($_SERVER['REQUEST_METHOD'] === 'GET' && $_GET['action'] === 'getUser') {
$userId = $_GET['id'];
$user = getUserById($userId);
echo json_encode($user);
}
PHP 提供了多种接口实现方式,开发者可以根据具体需求选择合适的接口类型。无论是 RESTful API、SOAP、GraphQL 还是 WebSocket,PHP 都有相应的工具和库来支持这些接口的开发。