slpic/templated-tracy-bar-panel

Tracy\IBarPanel 的通用实现,允许您通过实现 IBarPanel 工厂类而不是直接实现 IBarPanel 来实现 IBarPanel。

0.2.1 2021-06-29 05:52 UTC

This package is auto-updated.

Last update: 2024-08-29 05:00:34 UTC


README

Build Status Style Status

templated-tracy-bar-panel

这是一个简单的 Tracy\IBarPanel 实现,允许您通过组合两个模板(分别用于标签页和面板)以及一个数据提供者来创建自定义面板。

与直接实现 IBarPanel 接口相比,使用 TemplatedBarPanel 的优点是

  1. 仅实现 TemplateDataProviderInterface 并使用您喜欢的模板引擎为标签页和面板模板。
  2. 您将实现从特定模板引擎中抽象出来。一旦您找到了更好的/更快的模板引擎,您可以通过仅重新实现模板而不是收集它们的数据的方式切换到它。
  3. 您允许面板在不修改它们的情况下更改外观。您只需向它们传递不同的模板即可。

要求

安装

使用 composer 安装

composer require slepic/templated-tracy-bar-panel

用法

当为 Tracy 实现一个 IBarPanel 时,而不是直接实现接口,创建一个工厂类,该类将创建一个 TemplatedBarPanel,如下所示

class Factory
{
  /**
   * @param ...$dependencies Dependencies specific to your panel.
   * @return IBarPanel
   */
  public function create(...$dependencies)
  {
    return new TemplatedBarPanel(
      new MyTemplateDataProvider(...$dependencies),
      new OutputBufferTemplate(__DIR__ . '/tab.phtml'),
      new OutputBufferTemplate(__DIR__ . '/panel.phtml')
    );
  }
}

您需要实现 TemplateDataProviderInterface 以提供特定于模板的数据。

这两个模板可以是 OutputBufferTemplate,该模板由 slepic/php-template 包提供。

但如果您更喜欢更高级的模板引擎,请参阅 slepic/php-template-implementation,看看是否有针对您最喜欢的模板引擎的现有绑定。

变更日志

0.2.0

  • 更新依赖 slepic/php-template 到 v0.2。
  • TemplateDataProviderInterface::getTabData()TemplateDataProviderInterface::getPanelData() 的返回类型更改为数组。
  • 更改 travis 设置,仅在该软件包支持的 oldest 和 newest PHP 版本上运行测试(即 5.6 和 7.3)。