raichev / twig-turbo-bundle
针对 Symfony UX Turbo 的有观点的扩展
v1.0.0
2024-01-02 13:46 UTC
Requires
- php: ^7.4|^8
- symfony/config: ^6|^7
- symfony/dependency-injection: ^6|^7
- symfony/twig-bundle: ^6|^7
Requires (Dev)
- symfony/phpunit-bridge: ^6|^7
- symfony/test-pack: ^1.1
README
针对 Symfony UX Turbo 的有观点的扩展。
该组件旨在与 Symfony UX Turbo 一起使用,并提供一种快速、简单且高效的方法来创建 turbo 框架
简单示例
- 我们创建框架模板("myFrame.html.twig"),通过扩展基础模板并设置 frameId 和 frameSrc
{% extends 'turbo_frame_base.html.twig' %} {% set frameId = 'my-frame' %} {% set frameSrc = path('app_controller_myframe') %} {% block content %} <div> My Template Content </div> {% endblock %}
- 我们使用 turboFrame 函数在 twig 中加载框架,将框架模板作为第一个参数传递
{{ turboFrame('myFrame.html.twig'}}
- 在控制器方法中渲染框架
#[Route('/myframe', name: 'myframe', methods: ['GET'])] public function myFrame(): Response { return $this->render( 'myFrame.html.twig', ); }
默认情况下,"placeholder" 块包含一个加载指示器,但如果你想在框架中使用不同的占位符,可以在第二步中覆盖它
turboFrame 函数接受一些可选参数
- 'variables' => 传递给 twig 模板的变量
- 'loading' => 设置同名的 turbo 框架属性,['lazy' | 'eager'],默认为 'eager'
- 'autoscroll' => 设置同名的 turbo 框架属性,默认为 false
- 'disabled' => 设置同名的 turbo 框架属性,默认为 false
- 'withContext' => 当为 true 时,twig 模板可以访问其父级的变量,默认为 false
以上默认值可以通过组件配置进行更改