Skip to content

VeloxRouter Middlewares ​

Official enterprise-grade middleware collection for the VeloxRouter ecosystem (PHP 8.2+). Built for extreme performance, zero heavy dependencies, and full pipeline composability inspired by Fiber and .NET architectures.

Installation ​

Install the package via Composer:

bash
composer require veloxrouter/middlewares

🛠️ Complete Suite of 20 Middlewares ​

The VeloxRouter middleware suite is categorized into security, resilience, data management, performance optimization, and observability layers:

1. Authentication & Security ​

MiddlewareDescription
ApiKeyMiddlewareValidates external API keys safely using constant-time string comparisons (hash_equals).
BasicAuthMiddlewareValidates HTTP Basic Authentication credentials using a custom closure validator.
RpcAuthMiddlewareSecures internal microservice-to-microservice communication via constant-time token matching.
CorsMiddlewareHandles Cross-Origin Resource Sharing (CORS) headers and OPTIONS preflight requests.
SecurityHeadersMiddlewareApplies industry-standard OWASP security headers (HSTS, X-Frame-Options, XSS protection).

2. Resilience & Traffic Protection ​

MiddlewareDescription
RateLimiterMiddlewareProtects endpoints against brute-force and abuse by limiting requests per IP/user.
TimeoutMiddlewareEnforces hard execution time limits returning HTTP 504 on long operations.
IdempotencyMiddlewarePrevents duplicate processing of state-changing requests (POST, PUT, PATCH).
ErrorHandlerMiddlewareCatches exceptions globally and standardizes error responses in clean JSON format.

3. Data & Transactions ​

MiddlewareDescription
ValidationMiddlewareValidates incoming payload data against defined rules before reaching controllers.
JsonBodyMiddlewareEnsures incoming request payloads strictly enforce application/json.
TransactionMiddlewareWraps the HTTP request lifecycle inside atomic database transactions (begin, commit/rollback).

4. Performance & Optimization ​

MiddlewareDescription
CacheMiddlewareCaches full responses or fragments using fast backend drivers (e.g., APCu).
GzipMiddlewareCompresses outgoing response payloads using Gzip to optimize bandwidth consumption.
EtagMiddlewareGenerates HTTP ETags for conditional If-None-Match validation checks.

5. Observability & Utilities ​

MiddlewareDescription
RequestIdMiddlewareInjects and tracks a unique X-Request-ID header into requests and responses.
RequestLoggerMiddlewareProvides clean, PSR-3 compliant request and response logging for observability.
AuditLogMiddlewareRecords sensitive audit trails with context resolvers for compliance tracking.
I18nMiddlewareExtracts and injects localization and language context into headers and attributes.
HealthCheckMiddlewareCloud-native health check endpoint provider (/health, /health/live, /health/ready).

🚀 Practical Usage Examples ​

1. Global Pipeline (System-wide Setup) ​

Ideal for application-wide concerns like request tracing, security headers, and global error catching:

php
use VeloxRouter\Router\Router;
use VeloxRouter\Middlewares\RequestIdMiddleware;
use VeloxRouter\Middlewares\SecurityHeadersMiddleware;
use VeloxRouter\Middlewares\RequestLoggerMiddleware;
use VeloxRouter\Middlewares\ErrorHandlerMiddleware;

$router = new Router();

$router->addGlobalMiddleware(new ErrorHandlerMiddleware());
$router->addGlobalMiddleware(new RequestIdMiddleware());
$router->addGlobalMiddleware(new SecurityHeadersMiddleware());
$router->addGlobalMiddleware(new RequestLoggerMiddleware($logger));

2. Public API Protection (Rate Limiting & API Key) ​

Ideal for protecting external-facing endpoints against brute-force attacks and unauthorized access:

php
use VeloxRouter\Middlewares\RateLimiterMiddleware;
use VeloxRouter\Middlewares\ApiKeyMiddleware;

$router->get('/api/v1/stats', [StatsController::class, 'index'], [
    new RateLimiterMiddleware(maxAttempts: 60, decaySeconds: 60),
    new ApiKeyMiddleware($config->get('api_key'))
]);

3. Mutating Endpoint (Validation, JSON Enforcement & Database Transactions) ​

Ideal for data-writing endpoints (POST/PUT) where data integrity and automatic rollback on failure are critical:

php
use VeloxRouter\Middlewares\JsonBodyMiddleware;
use VeloxRouter\Middlewares\ValidationMiddleware;
use VeloxRouter\Middlewares\TimeoutMiddleware;
use VeloxRouter\Middlewares\TransactionMiddleware;

$router->post('/api/v1/orders', [OrderController::class, 'store'], [
    new TimeoutMiddleware(10),
    new JsonBodyMiddleware(),
    new ValidationMiddleware([
        'product_id' => 'required|integer',
        'quantity' => 'required|integer|min:1'
    ]),
    new TransactionMiddleware($dbManager)
]);

License ​

The VeloxRouter Middlewares package is open-source software licensed under the MIT license.