1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
<?php
namespace Tev\Plugin\Shortcode;
use Tev\Application\Application,
Tev\View\Renderer;
/**
* Base class for shortcode providers.
*
* Extending classes provide a method which generates their shortcode content.
*/
abstract class AbstractProvider
{
/**
* Application.
*
* @var \Tev\Application\Application
*/
protected $app;
/**
* View renderer.
*
* @var \Tev\View\Renderer
*/
protected $renderer;
/**
* Constructor.
*
* Inject dependencies.
*
* @param \Tev\Application\Application $app Application
* @param \Tev\View\Renderer $renderer View renderer
* @return void
*/
public function __construct(Application $app, Renderer $renderer)
{
$this->app = $app;
$this->renderer = $renderer;
}
/**
* Generate a shortcode.
*
* @param array $attrs Shortcode attributes
* @param string $content Shortcode content
* @return string Shortcode content
*/
abstract public function shortcode($attrs, $content);
}