appneta / traceview-twig
为AppNeta TraceView提供的附加Twig集成。
这个包的规范存储库似乎已经不存在了,因此该包已被冻结。
Requires
- php: >=5.2
- twig/extensions: ~1.0
- twig/twig: ~1.0
Suggests
- ext-oboe: `AppNeta/TraceViewTwig` will not report data unless the `php-oboe` extension is enabled at v1.4.4 or higher.
This package is not auto-updated.
Last update: 2023-02-13 23:53:10 UTC
README
AppNeta\TraceViewTwig
包提供了 Twig 与 AppNeta TraceView 之间的集成点。目前支持
- 将 Twig 模板渲染跟踪为配置文件
- 注入真实用户监控 JavaScript(通过 Twig 扩展)
模板跟踪
通过用 TraceView 增强的基本模板类替换 Twig 基本模板类来实现 Twig 模板跟踪。在 composer.json
中添加此包作为 require
是加载相关基本模板类的最简单方法
"require": {
"php": ">=5.3.3",
[...]
"appneta/traceview-twig": "master@dev"
},
如果你使用 Twig 与 Symfony2,可以在 config.yml
的 twig
部分添加此行
twig:
base_template_class: AppNeta\TraceViewTwig\Template\TraceViewTwigTemplate
如果你手动构建 Twig 环境,则应使用 base_template_class
选项
$options = array(
'cache' => ...,
'base_template_class' => AppNeta\TraceViewTwig\Template\TraceViewTwigTemplate
);
$twigEnv = new Twig_Environment($loader, $options);
真实用户监控
TraceView 真实用户监控 JavaScript 通常通过调用 oboe_get_rum_header
和 oboe_get_rum_footer
函数添加。由于 Twig 模板不允许执行任意 PHP 代码,因此此包提供了一个暴露为 Twig 函数的 Twig 扩展。
如果你使用 Twig 与 Symfony2,可以从 config.yml
加载扩展
appneta.twig.traceview_twig_rum_extension:
class: AppNeta\TraceViewTwig\Extension\TraceViewRUMExtension
tags:
- { name: twig.extension }
如果你手动构建 Twig 环境,则应直接调用 addExtension
方法
$twigEnv = new Twig_Environment($loader, $options);
$twigEnv->addExtension(new AppNeta\TraceViewTwig\Extension\TraceViewRUMExtension);
有关放置这些片段的完整详细信息,请参阅 这篇知识库文章。以下是一个基本示例
<html>
<head>
<meta ... >
{{ oboe_get_rum_header() }}
</head>
<body>
...
{{ oboe_get_rum_footer() }}
</body>
</html>
注意:这些函数只接受一个参数:是否在片段周围输出 <script>
标签(默认为 true
)。
放置这些函数的最佳位置是在您的根 Twig 布局模板中(如 TwigBundle::layout.html.twig
)。您可以使用这些 Twig 函数在块中,如 javascript
或 body
,但有两个缺点:您可能会不小心在 HTML 文档中多次输出脚本标签,并且如果 JavaScript 在其他 JavaScript 或 CSS 样式表之后加载,则时间信息将不够准确。
贡献者
感谢 Cakemail 的 Willem van der Jagt 编写 TraceView RUM 和 Twig 之间的初始集成!
贡献
改进此包的最佳方法是与使用它的人一起工作!我们积极鼓励补丁、拉取请求、功能请求和错误报告。