PHP code example of pivotphp / reactphp
1. Go to this page and download the library: Download pivotphp/reactphp 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/ */
pivotphp / reactphp example snippets
PivotPHP\Core\Core\Application;
use PivotPHP\ReactPHP\Providers\ReactPHPServiceProvider;
// Criar aplicação PivotPHP
$app = new Application();
// Registrar provider ReactPHP
$app->register(ReactPHPServiceProvider::class);
// Definir rotas
$app->get('/', function($request, $response) {
return $response->json([
'message' => 'Hello from PivotPHP ReactPHP!',
'timestamp' => time(),
'version' => '0.1.0'
]);
});
// POST com parsing automático de JSON
$app->post('/api/data', function($request, $response) {
$data = $request->body; // JSON automaticamente parseado
return $response->json([
'received' => $data,
'processed' => true,
'server_time' => date('c')
]);
});
// Rota com parâmetros (sintaxe PivotPHP)
$app->get('/user/:id', function($request, $response) {
$id = $request->param('id');
return $response->json([
'user_id' => $id,
'profile' => "Profile for user {$id}"
]);
});
echo "🚀 Servidor PivotPHP ReactPHP iniciando...\n";
echo "📡 Acesse: http://localhost:8080\n";
use PivotPHP\ReactPHP\Middleware\SecurityMiddleware;
// Adicionar middleware de segurança (isolamento automático)
$app->use(SecurityMiddleware::class);
// Ou configurar manualmente
$app->use(function($request, $response, $next) {
// Lógica de segurança customizada
return $next($request, $response);
});
use PivotPHP\ReactPHP\Monitoring\HealthMonitor;
$app->get('/health', function($request, $response) {
$monitor = new HealthMonitor();
return $response->json($monitor->getHealthStatus());
});
// Métricas detalhadas
$app->get('/metrics', function($request, $response) {
return $response->json([
'memory' => memory_get_usage(true),
'peak_memory' => memory_get_peak_usage(true),
'uptime' => $this->getUptime(),
'requests_handled' => $this->getRequestCount(),
]);
});
use PivotPHP\ReactPHP\Helpers\JsonHelper;
use PivotPHP\ReactPHP\Helpers\ResponseHelper;
use PivotPHP\ReactPHP\Helpers\RequestHelper;
$app->post('/api/secure', function($request, $response) {
// Identificação segura do cliente
$clientIp = RequestHelper::getClientIp($request, $trustProxies = true);
$clientId = RequestHelper::getClientIdentifier($request);
// Parsing JSON type-safe
$data = JsonHelper::decode($request->body);
if (!$data) {
// Response de erro padronizada
return ResponseHelper::createErrorResponse(
400,
'Invalid JSON data',
['client_ip' => $clientIp]
);
}
return $response->json([
'processed' => true,
'client_id' => $clientId,
'data_keys' => array_keys($data)
]);
});
return [
'server' => [
'debug' => env('APP_DEBUG', false),
'streaming' => env('REACTPHP_STREAMING', false),
'max_concurrent_requests' => env('REACTPHP_MAX_CONCURRENT', 100),
'request_body_size_limit' => env('REACTPHP_BODY_LIMIT', 16777216), // 16MB
],
'security' => [
'enable_request_isolation' => true,
'enable_memory_guard' => true,
'enable_blocking_detection' => true,
],
'monitoring' => [
'enable_health_checks' => true,
'metrics_retention_hours' => 24,
],
];
// Sempre usar middleware de segurança
$app->use(SecurityMiddleware::class);
// Validar entrada
$app->post('/api/user', function($request, $response) {
$data = $request->body;
// Validação básica
if (!isset($data['email']) || !filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
return ResponseHelper::createErrorResponse(400, 'Invalid email');
}
// Sanitização
$email = filter_var($data['email'], FILTER_SANITIZE_EMAIL);
return $response->json(['email' => $email]);
});
bash
# Via comando Artisan (recomendado)
php artisan serve:reactphp --host=0.0.0.0 --port=8080
# Ou diretamente
php examples/server.php
nginx
upstream pivotphp_backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://pivotphp_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}