2012-04-11 20:00:21 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
2012-04-13 11:03:05 +02:00
|
|
|
|
/*
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
|
2012-04-12 18:37:42 +02:00
|
|
|
|
namespace Nelmio\ApiDocBundle\Formatter;
|
2012-04-11 20:00:21 +02:00
|
|
|
|
|
2012-04-12 18:37:42 +02:00
|
|
|
|
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
2012-04-11 20:00:21 +02:00
|
|
|
|
|
2012-04-12 01:28:36 +02:00
|
|
|
|
abstract class AbstractFormatter implements FormatterInterface
|
2012-04-11 20:00:21 +02:00
|
|
|
|
{
|
2012-04-12 12:48:36 +02:00
|
|
|
|
/**
|
|
|
|
|
* {@inheritdoc}
|
|
|
|
|
*/
|
2012-07-20 00:58:58 +02:00
|
|
|
|
public function formatOne(ApiDoc $annotation)
|
2012-04-12 01:28:36 +02:00
|
|
|
|
{
|
2012-07-20 00:58:58 +02:00
|
|
|
|
return $this->renderOne($annotation->toArray());
|
2012-04-12 01:28:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
2012-04-12 12:48:36 +02:00
|
|
|
|
/**
|
|
|
|
|
* {@inheritdoc}
|
|
|
|
|
*/
|
|
|
|
|
public function format(array $collection)
|
|
|
|
|
{
|
|
|
|
|
$array = array();
|
|
|
|
|
foreach ($collection as $coll) {
|
2012-07-20 00:58:58 +02:00
|
|
|
|
$array[$coll['resource']][] = $coll['annotation']->toArray();
|
2012-04-12 12:48:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $this->render($array);
|
|
|
|
|
}
|
|
|
|
|
|
2012-04-12 17:24:38 +02:00
|
|
|
|
/**
|
|
|
|
|
* Format a single array of data
|
|
|
|
|
*
|
2012-05-23 00:33:01 +02:00
|
|
|
|
* @param array $data
|
2012-04-12 17:24:38 +02:00
|
|
|
|
* @return string|array
|
|
|
|
|
*/
|
2012-05-23 00:33:01 +02:00
|
|
|
|
abstract protected function renderOne(array $data);
|
2012-04-12 12:48:36 +02:00
|
|
|
|
|
2012-04-12 17:24:38 +02:00
|
|
|
|
/**
|
|
|
|
|
* Format a set of resource sections.
|
|
|
|
|
*
|
2012-05-23 00:33:01 +02:00
|
|
|
|
* @param array $collection
|
2012-04-12 17:24:38 +02:00
|
|
|
|
* @return string|array
|
|
|
|
|
*/
|
2012-05-23 00:33:01 +02:00
|
|
|
|
abstract protected function render(array $collection);
|
2012-04-11 20:00:21 +02:00
|
|
|
|
}
|