rename formatter to responder, formatResponse to buildResponse
This commit is contained in:
parent
c590244fa1
commit
cb666c18d6
|
@ -171,7 +171,7 @@ class Dispatcher {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$response = $controller->formatResponse($response, $format);
|
$response = $controller->buildResponse($response, $format);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
|
|
@ -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 . '!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue