Skip to content

Commit 35b4cfe

Browse files
committed
added CallbackResponse
1 parent 80598ab commit 35b4cfe

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
/**
4+
* This file is part of the Nette Framework (http://nette.org)
5+
* Copyright (c) 2004 David Grudl (http://davidgrudl.com)
6+
*/
7+
8+
namespace Nette\Application\Responses;
9+
10+
use Nette;
11+
12+
13+
/**
14+
* Callback response.
15+
*/
16+
class CallbackResponse extends Nette\Object implements Nette\Application\IResponse
17+
{
18+
/** @var callable */
19+
private $callback;
20+
21+
22+
/**
23+
* @param callable function (Nette\Http\IRequest $httpRequest, Nette\Http\IResponse $httpResponse)
24+
*/
25+
public function __construct(callable $callback)
26+
{
27+
$this->callback = $callback;
28+
}
29+
30+
31+
/**
32+
* Sends response to output.
33+
* @return void
34+
*/
35+
public function send(Nette\Http\IRequest $httpRequest, Nette\Http\IResponse $httpResponse)
36+
{
37+
call_user_func($this->callback, $httpRequest, $httpResponse);
38+
}
39+
40+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\Application\Responses\CallbackResponse.
5+
*/
6+
7+
use Nette\Application\Responses\CallbackResponse;
8+
use Nette\Http;
9+
use Tester\Assert;
10+
11+
12+
require __DIR__ . '/../bootstrap.php';
13+
14+
15+
test(function () {
16+
$response = new CallbackResponse(function (Http\IRequest $request, Http\IResponse $response) use (& $ok) {
17+
$ok = TRUE;
18+
});
19+
$response->send(new Http\Request(new Http\UrlScript), new Http\Response);
20+
Assert::true($ok);
21+
});

0 commit comments

Comments
 (0)