maximaster/twig.filewatcher

文件观察器,用于将 Twig 模板转换为 HTML

1.0.0 2016-04-16 20:56 UTC

This package is auto-updated.

Last update: 2024-09-13 00:27:30 UTC


README

用途

从 twig 模板生成 html 模板

使用方法

通过 composer 作为 maximaster/twig.filewatcher 连接

连接后,在项目中需要创建自己的文件观察器脚本,该脚本应配置解决方案。

示例

<?php
include_once __DIR__.'/vendor/autoload.php';

use Maximaster\Tools\Twig\Filewatcher;
use Maximaster\Tools\Twig\FilewatcherExtension;
use Maximaster\Tools\Twig\WebpackExtension;

$watcher = new Filewatcher;
$watcher
    ->setInputDir(__DIR__.'/twig')
    ->setOutputDir(realpath(__DIR__.'/../'))
    ->setGlobalsFromFile(__DIR__.'/twig/.context.php')
    ->addExtension(new FilewatcherExtension)
    ->addExtension(new WebpackExtension(__DIR__.'/assets/build'))
    ->compile();

可以手动运行脚本,但方便在 IDE 中设置文件观察器。以下为 JetBrains IDE (PhpStorm, Webstorm) 的示例:

文件 → 设置 → 工具 → 文件观察器 → + → <自定义>

文件类型: Twig

程序: <php.exe 路径>

参数: -f "$ProjectFileDir$<项目到 php 编译脚本的相对路径>"

工作目录: $ProjectFileDir$

工作原理

在源代码目录中找到 twig 文件,并为每个文件生成 html 模板,并将其保存到结果目录。在模板中传递全局数据,这些数据可以在编译脚本中设置。如果通过 addExtension 方法添加扩展,可以在模板中使用自定义函数和过滤器。

默认值

结果目录 - 工作目录 (<?php getcwd())

源代码目录 - 结果目录 + /src

全局数据 - 在脚本中设置 (setGlobalssetGlobalsFromFile) + ['compiler' => ['filename' => 模板文件名]

FilewatcherExtension 扩展

允许使用 getMessage(code) 函数,该函数从全局数组返回数据:messages[compiler.filename].codemessages.default.code

WebpackExtension 扩展

允许使用 showEntrygetEntry 函数,这些函数允许连接 webpack 生成的入口文件,并相应地以数组的形式获取它们。