rename formatter to responder, formatResponse to buildResponse

This commit is contained in:
Bernhard Posselt 2014-05-06 20:25:41 +02:00
parent c590244fa1
commit cb666c18d6
4 changed files with 19 additions and 19 deletions

View File

@ -171,7 +171,7 @@ class Dispatcher {
} }
} }
$response = $controller->formatResponse($response, $format); $response = $controller->buildResponse($response, $format);
} }
return $response; return $response;

View File

@ -51,7 +51,7 @@ abstract class Controller {
protected $request; protected $request;
private $serializer; private $serializer;
private $formatters; private $responders;
/** /**
* constructor of the controller * constructor of the controller
@ -71,8 +71,8 @@ abstract class Controller {
$this->appName = $appName; $this->appName = $appName;
$this->request = $request; $this->request = $request;
// default formatters // default responders
$this->formatters = array( $this->responders = array(
'json' => function ($response) { 'json' => function ($response) {
return new JSONResponse($response); return new JSONResponse($response);
} }
@ -94,34 +94,34 @@ abstract class Controller {
/** /**
* Registers a formatter for a type * Registers a formatter for a type
* @param string $format * @param string $format
* @param \Closure $closure * @param \Closure $responder
*/ */
protected function registerFormatter($format, \Closure $formatter) { protected function registerResponder($format, \Closure $responder) {
$this->formatters[$format] = $formatter; $this->responders[$format] = $responder;
} }
/** /**
* Serializes and formats a response * Serializes and formats a response
* @param mixed response the value that was returned from a controller and * @param mixed $response the value that was returned from a controller and
* is not a Response instance * is not a Response instance
* @param string $format the format for which a formatter has been registered * @param string $format the format for which a formatter has been registered
* @throws \DomainException if format does not match a registered formatter * @throws \DomainException if format does not match a registered formatter
* @return Response * @return Response
*/ */
public function formatResponse($response, $format='json') { public function buildResponse($response, $format='json') {
if(array_key_exists($format, $this->formatters)) { if(array_key_exists($format, $this->responders)) {
if ($this->serializer) { if ($this->serializer) {
$response = $this->serializer->serialize($response); $response = $this->serializer->serialize($response);
} }
$formatter = $this->formatters[$format]; $responder = $this->responders[$format];
return $formatter($response); return $responder($response);
} else { } else {
throw new \DomainException('No formatter registered for format ' . throw new \DomainException('No responder registered for format ' .
$format . '!'); $format . '!');
} }
} }

View File

@ -38,7 +38,7 @@ class ToUpperCaseSerializer implements IResponseSerializer {
class ChildController extends Controller { class ChildController extends Controller {
public function custom($in) { public function custom($in) {
$this->registerFormatter('json', function ($response) { $this->registerResponder('json', function ($response) {
return new JSONResponse(array(strlen($response))); return new JSONResponse(array(strlen($response)));
}); });
@ -155,12 +155,12 @@ class ControllerTest extends \PHPUnit_Framework_TestCase {
* @expectedException \DomainException * @expectedException \DomainException
*/ */
public function testFormatResonseInvalidFormat() { public function testFormatResonseInvalidFormat() {
$this->controller->formatResponse(null, 'test'); $this->controller->buildResponse(null, 'test');
} }
public function testFormat() { public function testFormat() {
$response = $this->controller->formatResponse(array('hi'), 'json'); $response = $this->controller->buildResponse(array('hi'), 'json');
$this->assertEquals(array('hi'), $response->getData()); $this->assertEquals(array('hi'), $response->getData());
} }
@ -168,7 +168,7 @@ class ControllerTest extends \PHPUnit_Framework_TestCase {
public function testCustomFormatter() { public function testCustomFormatter() {
$response = $this->controller->custom('hi'); $response = $this->controller->custom('hi');
$response = $this->controller->formatResponse($response, 'json'); $response = $this->controller->buildResponse($response, 'json');
$this->assertEquals(array(2), $response->getData()); $this->assertEquals(array(2), $response->getData());
} }
@ -176,7 +176,7 @@ class ControllerTest extends \PHPUnit_Framework_TestCase {
public function testCustomSerializer() { public function testCustomSerializer() {
$response = $this->controller->serializer('hi'); $response = $this->controller->serializer('hi');
$response = $this->controller->formatResponse($response, 'json'); $response = $this->controller->buildResponse($response, 'json');
$this->assertEquals(array('HI'), $response->getData()); $this->assertEquals(array('HI'), $response->getData());
} }

View File

@ -41,7 +41,7 @@ class TestController extends Controller {
* @param bool $bool * @param bool $bool
*/ */
public function exec($int, $bool) { public function exec($int, $bool) {
$this->registerFormatter('text', function($in) { $this->registerResponder('text', function($in) {
return new JSONResponse(array('text' => $in)); return new JSONResponse(array('text' => $in));
}); });
return array($int, $bool); return array($int, $bool);