Twig模版设计

为开发者而生的Twig(上)-Twig使用指南

只愿长相守 提交于 2019-12-04 08:26:23
前面2篇介绍了《 为模版设计师而生的Twig 》,已经暂停了很久没有进行翻译了。接下来继续介绍《为开发者而生的Twig》,因为内容较长,所以也分为两部分,本文为第一部分。这一章主要是介绍Twig的API,而不是模板语言。这将是实现应用程序的模板接口的开发者最有用的参考,对于创造Twig模板的人则意义有限。 1. Basics (基础知识) Twig使用一个叫做environment(环境,Twig_Environment类的实例)的核心对象。这个类的实例被用于存储配置和扩展,以及从文件系统或其他位置加载模板。 大多数应用在程序初始化的时候会创建一个Twig_Environment对象,并使用它来加载模板。在某些情况下,如果有多个环境并行,并且不同的配置都在使用,那么这会很有用。 通过配置Twig来为你的应用程序加载模板的最简单的方法,看起来大致是这样的: require_once '/path/to/lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('/path/to/templates'); $twig = new Twig_Environment($loader, array( 'cache' => '/path/to/compilation

为模版设计师而生的Twig(下)-Twig使用指南

你离开我真会死。 提交于 2019-12-04 08:18:37
《 为模版设计师而生的Twig 》的原文篇幅较长,因此分成两部分进行翻译。和第一部分《 为模版设计师而生的Twig(上) 》一样,本文还是介绍模板引擎的语法和语义,主要介绍上一片中余下的部分,包括:模板继承、HTML转义、宏(Macros)、表达式、空白符控制、扩展等内容。 12. 模板继承 Twig最强大的部分是模板继承。模板继承允许你建立一个基本的"骨架"模板,包含您的网站的所有公用的元素,并定义一些区块(block)让子模板可以覆盖。 听起来似乎很复杂,但其实这是非常基本的。通过一个例子将容易理解它。 让我们定义一个基本模板:base.html。它定义了一个简单的HTML框架文档,假设是你要使用的一个简单的两列分布的页面: <!DOCTYPE html> <html> <head> {% block head %} <link rel="stylesheet" href="style.css" /> <title>{% block title %}{% endblock %} - My Webpage</title> {% endblock %} </head> <body> <div id="content">{% block content %}{% endblock %}</div> <div id="footer"> {% block footer %} ©

为模版设计师而生的Twig(上)-Twig使用指南

风格不统一 提交于 2019-12-04 08:18:21
掌握了 如何安装Twig模版引擎 之后,接下来就要学习Twig的语法和语义,然后创建Twig模版。而本文的将花费较大的篇幅来介绍模板引擎的语法和语义,这对于模版设计师将会是非常有用的参考。由于本文的原文篇幅较长,所以就分成两部分进行翻译。本文为第一部分。 1. 概要 模板是一个简单的文本文件。它可以生成任何基于文本的格式(HTML、XML、CSV等)。它不具有特定扩展名,html或xml都OK。 模板中包含的变量或表达式,用来控制模板的逻辑。当模版被预处理时,它们会被替换为变量值。 下面是说明了一些基本要素的最小模板。稍后我们将介绍更多细节: <!DOCTYPE html> <html> <head> <title>My Webpage</title> </head> <body> <ul id="navigation"> {% for item in navigation %} <li><a href="{{ item.href }}">{{ item.caption }}</a></li> {% endfor %} </ul> <h1>My Webpage</h1> {{ a_variable }} </body> </html> Twig有两种类型的分隔符:{%...%} 和 {{...}} 。第一个是用于执行诸如for循环的控制语句,后者则在模板中打印一个表达式的结果。 2