2023-08-28

Twig 简介:快速启动 WordPress 开发的完美工具

Twig 简介:快速启动 WordPress 开发的完美工具

关于 WordPress 的未来已经有很多文章,许多人认为它缺乏模板语言,特别是当 Django、Ruby on Rails、Node.js、Laravel 甚至 Drupal 等平台都拥有模板语言时。像“WordPress 为近 25% 的网络提供支持”这样的事实让人很难质疑其当前基于 PHP 的模板系统。但由于代码中的模块化仍然缺失,人们可以问核心何时会有模板引擎。

好消息就在这里! Twig 模板引擎和一个名为 Timber 的插件可以帮助我们在 WordPress 中编写超级干净和模块化的代码。在本系列中,我们将讨论它的实现以及与 WordPress 的集成。我将从 Twig 是什么以及为什么需要它的基础知识开始,在接下来的三篇文章中,我将解释通过 Timber 与 WordPress 集成的不同类型的 Twig 模板。

什么是树枝?

Twig 是一个灵活、快速且安全的 PHP 模板引擎。 Twig 由 Symfony 框架的创建者 Fabien Potencier 为您带来,被认为功能丰富、广泛、快速且高效。

通常,当您在 WordPress 中编码时,您会将 PHP 块与 HTML 混合在一起(这就是我们所说的意大利面条代码)。这不属于超级干净的标记。为了采用模块化和 Doing it Right™ 方法,需要将 ViewData 分开。使用 Twig,您可以将视图层与应用程序的其余部分分开。 Twig 采用模型-视图-控制器 (MVC) 模式,有助于维护干净的代码。

为什么使用 Twig?

多年来,开发了不同的 PHP 模板引擎,但 Twig 肯定在以下能力方面超越了所有这些引擎。

功能丰富

Twig 是功能最丰富、最强大的 PHP 模板引擎之一。它支持多重继承和自动输出转义,并且有助于将模板划分为多个块或组件以保持模块化设计。不仅如此,开发者还可以添加更多插件来满足任何前端需求。

快速高效

与普通 PHP 模板相比,通过 Twig 编译的模板承担的开销要少得多。编码例程得到高度优化,您可以节省大量开发时间。当您计划更改基本框架时,它也很有用,因为 Twig 可以帮助创建一个单独的模板层,可以与任何后端框架(无论是 Laravel 还是 WordPress)连接。

设计者和开发者友好

Twig 适合设计师和开发人员的要求。即使您不是代码迷,使用 Twig 也很简单,并且基于组件编写模块化模板感觉很正确。其语法易于理解,并且避免在模板文件中实现动态 PHP 操作。总而言之,它非常现代,并且适用于所有最新的编码标准。使用 Twig 处理时,输出转义概念非常全面。

让我们从一个简单的例子开始。

在常规 PHP 中,您会得到如下输出:

<?php echo $foo;  // $foo is any random variable ?>
<?php echo htmlspecialchars( $foo, ENT_QUOTES, 'UTF-8' ) ?>
登录后复制

在 Twig 中,事情变得更加简单,即上面的代码被压缩为:

{{ foo }}       
{{ foo|escape }}
{{ foo|e }}         {# shortcut to escape a variable #}
登录后复制

输出转义在 Twig 中就是这么简单。只需添加双大括号,输入变量的名称,您就会得到输出。在旁边放一个带有 e 的管道,我们就开始转义了。本系列接下来的三篇文章将详细介绍这一点。

安全

Twig 自行清理并保护数据。其独特的沙箱模式可以智能地监控整个代码并过滤出最佳的结果。这意味着可以轻松、安全地实施用户生成的模板。沙箱环境只能针对特定模板在全局或本地启用,如下所示:

{{ include( 'post.html', sandboxed = true ) }}
登录后复制

如果出现任何语法错误,Twig 会生成一条消息来调试您的文件,其中包含文件名和有问题代码的行号等详细信息。

灵活

我刚刚提到 Twig 是一个现代模板引擎,这也意味着您可以扩展它的功能,因为它非常灵活。它完全支持高效的词法分析器解析器,开发人员可以通过它们定义自定义标签、过滤器、函数等。

其他

除了上面提到的所有功能之外,Twig 有很好的文档记录并经过充分的单元测试。它的 API 和模板库完全稳定,可以处理各种复杂的任务。还提供专门的在线书籍和完整的 API 文档。

Twig 是 Drupal 8 的新模板语言,这是我充满信心地使用这个模板引擎的主要动机。 XWP 的优秀人员,尤其是 Weston Ruter,正在制定一项提案,使 Twig 符合 WordPress.com VIP 标准。

Timber:将 Twig 与 WordPress 集成

到目前为止,整个讨论都围绕着两件事。首先,我们应该采用模块化方法,在构建自定义 WordPress 主题时将模板与数据分开,其次,Twig 可以帮助我们做到这一点。但是什么让这两者走到一起呢?

为了实现 Twig 和 WordPress 之间的最佳集成,人们做出了不同的努力,其中一项勇敢的尝试是由一家名为 Upstatement 的网络机构创建的 Timber。它使用 Twig 模板引擎,这使得在 WordPress 中编写模块化和干净的代码成为可能。

Timber 和 Twig 可以帮助您构建快速且模块化的 WordPress 主题。这样您就可以将 HTML 代码与普通 PHP 文件分开,从而确保更可持续的代码模式。将 HTML 和 PHP 分开的概念使得 PHP 文件可以严格专注于提供 data 和逻辑,而 HTML 文件(Twig 文件)则专注于 view Web 应用程序层。

总的来说,Timber 执行三个主要任务:

  • 它将 Twig 集成到 WordPress 中。
  • 它渲染 Twig 模板。
  • 它添加了基础 WordPress 数据集。

我认为他们的使命宣言说明了一切:

Timber 是一款适合希望通过直观、一致且完全可访问的界面将 HTML 转换为高质量 WordPress 主题的开发人员的工具。

  • 直观:API 的编写以用户为中心,围绕程序员的期望。
  • 一致:所有 WordPress 对象都可以通过多态属性(例如 slug、ID 和名称)进行访问。
  • 可访问:没有黑匣子。我们已尽一切努力让开发人员能够访问 100% 的 HTML。

木材如何工作?

对于常规 WordPress 主题,所有 PHP 和 HTML 代码片段都集成在同一个 PHP 模板文件中并进行修改。然而,使用 Timber,我们将模板文件拆分为两个不同的数据文件:PHP 文件和视图/模板文件,即 Twig 文件。

因此,第一个文件的扩展名为 .php,第二个文件的扩展名为 .twig。因此,如果您要为 single.php 创建模板文件,您的文件将被命名为 single.phpsingle.twig

前者是整理数据的文件,后者是使用HTML中的数据的模板。这样您就可以以模块化的方式在 WordPress 主题中添加动态操作。

让我们总结一下:

Timber 处理 PHP 和 HTML (Twig) 文件中的 WordPress 主题模板文件。这样您就可以将逻辑与显示分开。它为您提供了构建、设计和显示主题的新方法。

结论

Twig 有很多值得喜爱的地方。本文只是介绍在 WordPress 中使用模板引擎的优点。模块化代码是更好的代码并且易于维护。现在是开发人员进行工作流程转变的时候了,我相信 Twig 可以帮助他们做到这一点。

在接下来的文章中,我将展示使用 Twig 模板文件的实际实现。我们将通过代码示例研究如何实现 Twig 来渲染 WP 图像、评论和菜单。在此之前,如果您发现任何疑问,请随时询问。不要忘记在 Twitter 上联系我们。

以上就是Twig 简介:快速启动 WordPress 开发的完美工具的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/599273.html

发表回复

Your email address will not be published. Required fields are marked *