omegacode/jwt-secured-api-twig

此包将模板引擎 twig 集成到 API 框架中。

1.0.1 2021-01-04 22:34 UTC

This package is auto-updated.

Last update: 2024-09-05 06:22:33 UTC


README

alt text

JWT 加密的 API - Twig

此包将模板引擎 twig 集成到 API 框架中。

在操作中使用 twig

此包允许您创建使用 twig 渲染的操作。您只需让您的操作类扩展 \OmegaCode\JwtSecuredApiTwig\Action\AbstractTwigAction 即可。

一个例子可能是

namespace Vendor\MyProject\Action;

use OmegaCode\JwtSecuredApiTwig\Action\AbstractTwigAction;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;

class IndexAction extends AbstractTwigAction
{
    public function __invoke(Request $request, Response $response): Response
    {
        return $this->render($response, [
            'currentTime' => time(),
        ]);
    }

    protected function getTemplateFilePath(): string
    {
        return 'index.html'; // res/templates/index.html
    }
}

使用 twig 渲染

要使用 twig 渲染模板文件,您可以简单地注入服务 Twig\Environment。如何使用该服务的示例可以在类 \OmegaCode\JwtSecuredApiTwig\Action\AbstractTwigAction 中找到。

操作模板目录

也许您想更改 twig 模板的默认加载目录(res/templates)。这可以通过创建以下类似的订阅者来实现。

services:
  Vendor\MyProject\Subscriber\TwigTemplateSubscriber:
    tags:
      - 'kernel.event_subscriber'
namespace Vendor\MyProject\Subscriber;

use OmegaCode\JwtSecuredApiTwig\Event\Twig\CollectTemplatesEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class TwigTemplateSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            CollectTemplatesEvent::NAME => 'onCollectTemplates',
        ];
    }

    public function onCollectTemplates(CollectTemplatesEvent $event): void
    {
        $event->addTemplatePath(APP_ROOT_PATH . '/my/custom/templates');
    }
}