maximaster / twig.filewatcher
文件观察器,用于将 Twig 模板转换为 HTML
Requires
- php: >=5.5.0
- twig/twig: v1.24.0
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
全局数据 - 在脚本中设置 (setGlobals
或 setGlobalsFromFile
) + ['compiler' => ['filename' => 模板文件名]
FilewatcherExtension 扩展
允许使用 getMessage(code)
函数,该函数从全局数组返回数据:messages[compiler.filename].code
或 messages.default.code
WebpackExtension 扩展
允许使用 showEntry
和 getEntry
函数,这些函数允许连接 webpack 生成的入口文件,并相应地以数组的形式获取它们。