Verze: 0.5
- 0.6 (master)
- 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.