Single Action/Invocable/Framework Agnostics Presenters in Nette
Notice: This thread is very old.
- Tomáš Votruba
- Moderator | 1114
On 87th Posobota I've talked about the thinnest form of Nette Presenters see video.
How does Single Action/Invocable/Framework Agnostics Presenter look like?
For JSON presenter it looks like this:
namespace App\Presenter;
use Nette\Application\Responses\JsonResponse;
final class ApiPresenter
{
public function __invoke(): JsonResponse
{
return new JsonResponse('Hi!');
}
}
For classic template presenter like this:
namespace App\Presenter;
use Symplify\SymbioticController\Adapter\Nette\Template\TemplateRenderer;
final class StandalonePresenter
{
/**
* @var TemplateRenderer
*/
private $templateRenderer;
public function __construct(TemplateRenderer $templateRenderer)
{
$this->templateRenderer = $templateRenderer;
}
public function __invoke(): string
{
return $this->templateRenderer->renderFileWithParameters(
__DIR__ . '/templates/Contact.latte'
);
}
}
Since the talk I have:
- polished the Symplify/SymbioticController package
- and wrote a post about its background and features
Huge thanks @JanMikeš for feedback, first user and review.