braunstetter / template-hooks-bundle
给你的包一个扩展模板的机会。
v0.2.2
2021-12-03 18:24 UTC
Requires
- php: ^8.0
- symfony/framework-bundle: ^4.4|^5.0|^6.0
- symfony/twig-bundle: ^5.3|^6.0
- symfony/yaml: ^5.3|^6.0
Requires (Dev)
README
不使用继承扩展 Twig 模板。
安装
composer require braunstetter/template-hooks-bundle
使用
现在您可以在模板中使用 hook 标签了
{{ hook('app.cp.global-header') }}
一旦你将此标签插入到某个地方,你和其他包都可以通过创建一个类来钩入这个标签
<?php namespace App\Twig; use Braunstetter\TemplateHooks\Twig\TemplateHook; class BreadcrumbsHook extends TemplateHook { /** * @inheritDoc */ public function render(): string { return $this->templating->render('hooks/breadcrumbs.html.twig', $this->context); } public function setTarget(): string|array { return 'app.cp.global-header'; // it would be possible to register to multiple hooks // return ['app.cp.global-header', 'app.cp.global-sidebar']; } }
就这样。您的模板将被渲染,您可以在渲染之前处理任何逻辑。
发送 JavaScript 和 CSS
使用 AssetsPushBundle,您可以在 hooks/breadcrumbs.html.twig 中编写内容
{% css '/breadcrumbs.css' %}
CSS 或 JS 将包含在页面的头部。
有关更多信息,请参阅官方文档。