1 <?php
2
3 4 5 6 7 8 9 10
11
12 namespace ICanBoogie\HTTP;
13
14 15 16
17 class CallableDispatcher implements DispatcherInterface
18 {
19 private $callable;
20
21 22 23
24 public function __construct($callable)
25 {
26 $this->callable = $callable;
27 }
28
29 30 31
32 public function __invoke(Request $request)
33 {
34 $callable = $this->callable;
35
36 return $callable instanceof \Closure ? $callable($request) : call_user_func($callable, $request);
37 }
38
39 40 41
42 public function rescue(\Exception $exception, Request $request)
43 {
44 throw $exception;
45 }
46 }
47