NelmioApiDocBundle/Formatter/HtmlFormatter.php
2012-06-27 09:45:06 +02:00

92 lines
2.0 KiB
PHP

<?php
/*
* This file is part of the NelmioApiDocBundle.
*
* (c) Nelmio <hello@nelm.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Nelmio\ApiDocBundle\Formatter;
use Symfony\Component\Templating\EngineInterface;
class HtmlFormatter extends AbstractFormatter
{
/**
* @var string
*/
private $apiName;
/**
* @var string
*/
private $sandboxTarget;
/**
* @var \Symfony\Component\Templating\EngineInterface
*/
private $engine;
/**
* @param string $apiName
*/
public function setApiName($apiName)
{
$this->apiName = $apiName;
}
/**
* @param string $sandboxTarget
*/
public function setSandboxTarget($sandboxTarget)
{
$this->sandboxTarget = $sandboxTarget;
}
/**
* @param EngineInterface $engine
*/
public function setTemplatingEngine(EngineInterface $engine)
{
$this->engine = $engine;
}
/**
* {@inheritdoc}
*/
protected function renderOne(array $data)
{
return $this->engine->render('NelmioApiDocBundle::resource.html.twig', array_merge(
array('data' => $data, 'displayContent' => true),
$this->getGlobalVars()
));
}
/**
* {@inheritdoc}
*/
protected function render(array $collection)
{
return $this->engine->render('NelmioApiDocBundle::resources.html.twig', array_merge(
array('resources' => $collection),
$this->getGlobalVars()
));
}
/**
* @return array
*/
private function getGlobalVars()
{
return array(
'apiName' => $this->apiName,
'sandboxTarget' => $this->sandboxTarget,
'date' => date(DATE_RFC822),
'css' => file_get_contents(__DIR__ . '/../Resources/public/css/screen.css'),
);
}
}