slpic / templated-tracy-bar-panel
Tracy\IBarPanel 的通用实现,允许您通过实现 IBarPanel 工厂类而不是直接实现 IBarPanel 来实现 IBarPanel。
0.2.1
2021-06-29 05:52 UTC
Requires
- php: >=5.6
- slepic/php-template: ^0.2 || ^1.0
- tracy/tracy: ^2.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- phpunit/phpunit: ~5.0
Provides
This package is auto-updated.
Last update: 2024-08-29 05:00:34 UTC
README
templated-tracy-bar-panel
这是一个简单的 Tracy\IBarPanel
实现,允许您通过组合两个模板(分别用于标签页和面板)以及一个数据提供者来创建自定义面板。
与直接实现 IBarPanel 接口相比,使用 TemplatedBarPanel
的优点是
- 仅实现
TemplateDataProviderInterface
并使用您喜欢的模板引擎为标签页和面板模板。 - 您将实现从特定模板引擎中抽象出来。一旦您找到了更好的/更快的模板引擎,您可以通过仅重新实现模板而不是收集它们的数据的方式切换到它。
- 您允许面板在不修改它们的情况下更改外观。您只需向它们传递不同的模板即可。
要求
- PHP 5.6 或 PHP 7.0
- slepic/php-template (packagist)
安装
使用 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)。