cloud_download Stáhnout
Verze: 0.5

HTTP

Gephart implementuje PSR-7, ale pracuje nezávisle na vlastní implementaci, lze využít jakoukoli jinou, která PSR-7 dodržuje. Díky tomu lze Gephart snadno použít i jako middleware.

Request

Gephart/Framework/Kernel požaduje jako jediný parametr objekt implementující Psr\Http\Message\ServerRequestInterface. A ten lze snadno vytvořit:

$request = (new RequestFactory())->createFromGlobals();

K objektu lze získa přístup pomocí dependency injection:

<?php

class DefaultController()
{
    public function __construct(\Psr\Http\Message\ServerRequestInterface $request)
    {
        $this->request = $request;
    }

    public function index()
    {
        $queryParams = $this->request->getQueryParams();
    }
}

Response

Každý kontroler, který vrací obsah, jej musí vracet v objektu implementující Psr\Http\Message\ResponseInterface

Ve frameworku jsou dostupné 3 továrničky, které jej nainicializují:

TemplateResponseFactory

<?php

use Gephart/Framework/Response/TemplateResponseFactory;

class DefaultController()
{
    public function __construct(TemplateResponseFactory $response)
    {
        $this->response = $response;
    }

    public function index()
    {
        return $this->response->createResponse("default.html.twig");
    }
}

TextResponseFactory

<?php

use Gephart/Framework/Response/TextResponseFactory;

class DefaultController()
{
    public function __construct(TextResponseFactory $response)
    {
        $this->response = $response;
    }

    public function index()
    {
        return $this->response->createResponse("<h1>Nadpis</h1>");
    }
}

TemplateResponseFactory

<?php

use Gephart/Framework/Response/JsonResponseFactory;

class DefaultController()
{
    public function __construct(JsonResponseFactory $response)
    {
        $this->response = $response;
    }

    public function index()
    {
        return $this->response->createResponse(["data"=>"ok"]);
    }
}

Každá z továzniček umožnuje nastavení HTTP kódu jako druhý parametr a hlavičky jako třetí parametr.