1. Go to this page and download the library: Download mathsgod/light-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/ */
mathsgod / light-server example snippets
// public/index.php
();
// pages/index.php
use Laminas\Diactoros\Response\TextResponse;
return new class {
public function get(): TextResponse
{
return new TextResponse("Hello, World!");
}
public function post(): TextResponse
{
return new TextResponse("POST request received");
}
};
return new class {
public function get(): ResponseInterface { }
public function head(): ResponseInterface { }
public function post(): ResponseInterface { }
public function put(): ResponseInterface { }
public function delete(): ResponseInterface { }
public function patch(): ResponseInterface { }
public function options(): ResponseInterface { }
};
// pages/blog/{id}/index.php
use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ServerRequestInterface;
return new class {
public function get(ServerRequestInterface $request): JsonResponse
{
$id = $request->getAttribute('id');
return new JsonResponse(['id' => $id]);
}
};
// pages/user/{id:number}/{name:word}/index.php
use Laminas\Diactoros\Response\TextResponse;
use Psr\Http\Message\ServerRequestInterface;
return new class {
public function get(ServerRequestInterface $request): TextResponse
{
$id = $request->getAttribute('id');
$name = $request->getAttribute('name');
return new TextResponse("User ID: $id, Name: $name");
}
};
// pages/users.php
use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ServerRequestInterface;
return new class {
public function get(ServerRequestInterface $request, UserRepository $repo): JsonResponse
{
return new JsonResponse($repo->findAll());
}
};
$container = /* your PSR-11 container */;
(new Light\Server($container))->run();
$server = new Light\Server();
$server->pipe(new Light\Server\SecurityHeadersMiddleware());
$server->run();
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
#[\Attribute]
class AuthMiddleware implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
// auth logic ...
return $handler->handle($request);
}
}
return new class {
#[AuthMiddleware]
public function get(): ResponseInterface { /* ... */ }
};