允许 KoolReport 使用 twig 模板引擎渲染视图

1.0.0 2019-06-01 06:15 UTC

This package is auto-updated.

Last update: 2024-09-11 00:00:10 UTC


README

概述

从 4.0.0 版本开始,KoolReport 支持其他模板引擎,而不仅仅是自己的视图文件模板。 Twig 是 KoolReport 支持的流行模板引擎之一。

安装

通过下载 .zip 文件

  1. 下载
  2. 解压 zip 文件
  3. 将文件夹 twig 复制到 koolreport 文件夹中,使其看起来如下所示
koolreport
├── core
├── twig

通过 composer

composer require koolreport/twig

开始使用

步骤 1: 将 twig 服务添加到您的报告

class Report extends \koolreport\KoolReport
{
    use \koolreport\clients\Bootstrap;

    use \koolreport\twig\Engine;
    protected function twigInit()
    {
        $loader = new \Twig\Loader\FilesystemLoader(dirname(__FILE__).'/views');
        $twig = new \Twig\Environment($loader);
        return $twig;
    }
    ...
}

步骤 2:views 文件夹中创建视图 report.html,如下所示

<html>
<head>
    <title>Welcome to Twig</title>
</head>
<body>
    <h1>Welcome to Twig</h1>
    {{ 
        widget('koolreport.widgets.koolphp.Table',{
            dataSource:report.dataStore("data"),
        }) 
    }}
</body>
</html>

步骤 3: 您可以使用以下代码行运行您的报告

$report = new Report;
$report->run()->render("report.html");

恭喜,现在您可以使用 Twig 设计您的报告。

一些说明

  1. 在您的模板中,您使用参数 report 来引用报告对象
  2. 当使用函数 widget() 生成 KoolReport 的小部件时,您应将类名中的反斜杠 \ 更改为点 ".",例如,将 \koolreport\widgets\koolphp\Table 更改为 koolreport.widgets.koolphp.Table
  3. 您可以使用 report.dataStore("datastore_name") 引用任何数据源

限制

由于 Twig 不允许 PHP 在其中运行,因此存在一些限制。这限制了 KoolReport 小部件的一些功能,例如定义匿名函数。例如,无法像这样在表小部件中定义自定义函数来格式化值。

Table::create(array(
    ...
    "columns"=>array(
        "id"=>array(
            "formatValue"=>function($value)
            {
                return "<a href='$value'>View</a>";
            }
        )
    )
))

简单地说,无法将上述 PHP 代码转换为 twig 中的 JSON 定义。

资源

  1. 完整文档
  2. 示例 & 展示

支持

如果您需要支持,请使用 我们的论坛,这样其他人也可以从中受益。如果支持请求需要隐私,您可以发送电子邮件至 support@koolreport.com