omegacode / jwt-secured-api-twig
此包将模板引擎 twig 集成到 API 框架中。
1.0.1
2021-01-04 22:34 UTC
Requires
- omegacode/jwt-secured-api-core: dev-master
- twig/twig: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- guzzlehttp/guzzle: ^6.5
- phpmd/phpmd: ^2.8
- phpstan/phpstan: 0.12.*
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ^3.5
- symfony/var-dumper: ^5.0
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2024-09-05 06:22:33 UTC
README
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'); } }