POZOR! Článek jsem napsal před více jak rokem, a tudíž už nemusí reflektovat můj nynější názor nebo může být zastaralý.
Velmi mne zasáhla přednáška PHP, PSR-7 a mírné immutability v mezích zákona na WebExpo 2017. Líbí se mi přístup, že existuje jeden HTTP požadavek, který může (díky standardizaci) zpracovat více aplikací/frameworků za sebou, ať už prostřednictvím middleware (jehož standard ještě není schválen) nebo jakkoli jinak. Podle mě to také velmi usnadňuje přepis aplikace do nového frameworku.
V rámky projektu Gephart jsem se proto rozhodl, že framework upravím tak, aby byl závislý na jakémkoli požadavku, který splňuje implementaci Psr\Http\Message\ServerRequestInterface a vrací odpověď, která implementuje Psr\Http\Message\ResponseInterface. Stává se tak mnohem více univerzálnějším.
Napsal jsem jednoduchou implementaci gephart/http a nová verze frameworku Gephart 0.5 jej již používá.
<?php
// Počítá se s nainstalovaným gephart/gephart
include_once __DIR__ . "/../vendor/autoload.php";
// Request, který implementuje Psr\Http\Message\ServerRequestInterface
$request = (new Gephart\Http\RequestFactory())->createFromGlobals();
// ... jakákoli další práce s požadavkem
$kernel = new Gephart\Framework\Kernel($request);
// Response, který implementuje Psr\Http\Message\ResponseInterface
$response = $kernel->run();
// ... jakákoli další práce s odpovědí
Znáte někoho, komu by článek mohl pomoct? Zasdílejte mu ho :)