slepic / templated-tracy-bar-panel
Generic implementaton of Tracy\IBarPanel which allows you to implement IBarPanel factory classes instead of implementing IBarPanel directly.
Installs: 17 199
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
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-10-29 05:34:35 UTC
README
templated-tracy-bar-panel
A simple implementation of Tracy\IBarPanel
that allows you to create custom panels by composition of two templates (for tab and panel respectively) and a data provider which feeds the templates with specific data.
The advantage of using TemplatedBarPanel
instead of implementing the IBarPanel interface directly are:
- Implement just the
TemplateDataProviderInterface
and use your favourite templating engine for tab and panel templates. - You abstract your implementation from a specific templating engine. Once you find a better/faster templating engine you can switch to it by just reimplementing the templates and not the way the data for them are gathered.
- You allow your panels to change their look without having to modify them. You just pass different templates to them.
Requirements
- PHP 5.6 or PHP 7.0
- slepic/php-template (packagist)
Installation
Install with composer
composer require slepic/templated-tracy-bar-panel
Usage
When implementing a IBarPanel
for Tracy, instead of implementing the interface directly, create just a factory class, which will instantiate the TemplatedBarPanel
like this:
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')
);
}
}
You need to implement the TemplateDataProviderInterface
to provide specific data for your templates.
The two templates can be the OutputBufferTemplate
provided by the slepic/php-template package.
But if you prefer a higher level template engine, see slepic/php-template-implementation to see if there is an existing binding for your favourite templating engine.
Changelog
0.2.0
- Update dependency slepic/php-template to v0.2.
- Changed return type of
TemplateDataProviderInterface::getTabData()
andTemplateDataProviderInterface::getPanelData()
to array. - Changed travis setup to only run tests in oldest and newest php versions supported by this package (that is 5.6 and 7.3).