appneta/traceview-twig

为AppNeta TraceView提供的附加Twig集成。

这个包的规范存储库似乎已经不存在了,因此该包已被冻结。

安装次数: 5,798

依赖项: 0

建议者: 1

安全: 0

星标: 0

关注者: 43

分支: 0

类型:symfony-bundle

v0.1.0 2014-10-23 18:06 UTC

This package is not auto-updated.

Last update: 2023-02-13 23:53:10 UTC


README

A Symfony request profiled in TraceView.

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.ymltwig 部分添加此行

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_headeroboe_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 函数在块中,如 javascriptbody,但有两个缺点:您可能会不小心在 HTML 文档中多次输出脚本标签,并且如果 JavaScript 在其他 JavaScript 或 CSS 样式表之后加载,则时间信息将不够准确。

贡献者

感谢 Cakemail 的 Willem van der Jagt 编写 TraceView RUM 和 Twig 之间的初始集成!

贡献

改进此包的最佳方法是与使用它的人一起工作!我们积极鼓励补丁、拉取请求、功能请求和错误报告。