PHP code example of boxphp / server

1. Go to this page and download the library: Download boxphp/server library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

boxphp / server example snippets


use BoxPHP\Server\Http\Server\HttpServer;
use BoxPHP\Server\Http\Message\HttpResponse;

$server = new HttpServer('http://0.0.0.0:8080');

$server->get('/', function ($request) {
    return HttpResponse::json(['hello' => 'world']);
});

$server->get('/users/{id}', function ($request) {
    $id = $request['params']['id'];
    return HttpResponse::json(['id' => $id]);
});

$server->post('/users', function ($request) {
    return HttpResponse::json(['created' => true], 201);
});

$server->start();

$server->group('/api', function ($server) {
    $server->get('/users', fn() => HttpResponse::json(['users' => []]));
    $server->get('/posts', fn() => HttpResponse::json(['posts' => []]));
});

use BoxPHP\Server\Middleware\AuthMiddleware;
use BoxPHP\Server\Middleware\CorsMiddleware;
use BoxPHP\Server\Middleware\RateLimitMiddleware;

// 认证中间件
$server->get('/profile', function ($request) {
    return HttpResponse::json($request['auth_user']);
})->middleware(new AuthMiddleware());

// CORS 中间件
$server->options('/api/{path}', function ($request) {
    return HttpResponse::json(['ok' => true]);
})->middleware(new CorsMiddleware());

// 限流中间件
$server->post('/submit', function ($request) {
    return HttpResponse::json(['submitted' => true]);
})->middleware(new RateLimitMiddleware(60, 60));

use BoxPHP\Server\Tcp\TcpServer;

$server = new TcpServer('0.0.0.0:9000');

$server->onMessage(function ($connection, $data) {
    $connection->send("Echo: {$data}");
});

$server->start();

use BoxPHP\Server\WebSocket\WebSocketServer;

$server = new WebSocketServer('0.0.0.0:8080');

$server->onOpen(function ($connection) {
    echo "New connection\n";
});

$server->onMessage(function ($connection, $data) {
    $connection->send($data); // Echo
});

$server->start();