mml/twigstem

v1.1.0 2021-04-15 06:57 UTC

This package is auto-updated.

Last update: 2024-09-15 15:43:19 UTC


README

Twigstem - 使用 Twig 模板进行快速原型设计

安装

对于新项目,运行以下命令以创建新的 composer.json 文件

composer init

编辑您的 composer 以要求 twigstem

{
    ...
    "require": {
    	 "mml/twigstem": "^1.1", 
    }
}

运行 composer install

composer install

示例项目

创建一个名为 'public' 的文件夹来托管您的站点,并创建另一个名为 "src" 的文件夹来包含所有源文件(视图、数据等)。在 public 文件夹中,创建一个 php 文件来处理请求

<?php
  // path to application src directory (directory containing views and data)
  $appDir = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR;
  // Instantiate and run Twigstem
  $Twigstem = \Twigstem\Server::getInstance();
  $Twigstem->init($appDir)->serve();

接下来,我们需要将所有请求重定向到该文件。对于 Apache 网站,我们可以使用 .htaccess 文件来完成此操作。例如

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.+) - [PT,L]
    RewriteRule ^(.*) /index.php [L]
</IfModule>

最终的目录结构

├── public
│   ├── .htaccess
│   ├── index.php  
├── src
│   ├── data
│   ├── views
├── vendor
├─- composer.json

概述

Twigstem 将尝试加载与请求 URL 匹配的模板。

/about => loads views/about.twig
/more/info =>  loads views/more/info.twig

将新模板添加到 src/views 目录中。

数据

数据可以通过以下任何方式与页面相关联

  1. 添加一个与页面同名的 json 文件
views/products.twig
views/products.json
  1. 将一个与页面同名的 json 文件添加到数据文件夹中。
views/products.twig
data/products.json
  1. 在页面上添加注释以指定数据源。只有数据文件夹中的 json 文件可以通过这种方式指定
{# data src: index.json #}

在指定数据文件时,您可以可选地包含一个 ID。如果提供了 ID,则返回的数据包含在页面上下文中的此 ID 下。例如

{# data src: products.json #}
{# data id:sizes src: sizelist.json #}

扩展 Twig

Twigstem 将寻找一个名为 TwigExtension 的类。如果找到,这将实例化并添加到 twig 作为扩展。