Jdi na navigaci předmětu

Slim Framework

Slim Framework instalace

$ composer require slim/slim:^4.0
$ composer require slim/psr7

Example

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

require __DIR__ . '/../vendor/autoload.php';

// Create Slim app
$app = AppFactory::create();

// Define app routes
$app->get('/', function (Request $request, Response $response, $args) {
    $response->getBody()->write("Hello world!");
    return $response;
});

// Run app
$app->run();

Spuštění

  • Pomocí PHP built-in webserveru
$ php -S localhost:8080

Response

  • Nastavení status kódu (výchozí 201)
$response->withStatus(201);
$data = ['name' => 'Bob', 'age' => 40];
$payload = json_encode($data);

$response->getBody()->write($payload);
return $response->withHeader('Content-Type', 'application/json');

Request Headers

$headers = $request->getHeader('Content-Type');

Request Body

$parsedBody = $request->getParsedBody();

Middleware

<?php
$app = AppFactory::create();

$beforeMiddleware = function ($request, $handler) {
    $response = $handler->handle($request);
    $existingContent = (string) $response->getBody();

    $response = new Response();
    $response->getBody()->write('BEFORE' . $existingContent);

    return $response;
};

$afterMiddleware = function ($request, $handler) {
    $response = $handler->handle($request);
    $response->getBody()->write('AFTER');
    return $response;
};

$app->add($beforeMiddleware);
$app->add($afterMiddleware);

// ...

$app->run();

Seskupení cest

$app->group('', function (RouteCollectorProxy $group) {
    $group->get('/billing', function ($request, $response, $args) {
        // Route for /billing
    });

    $group->get('/invoice/{id:[0-9]+}', function ($request, $response, $args) {
        // Route for /invoice/{id:[0-9]+}
    });
})->add(new GroupMiddleware());