Skip to content

Commit 3584721

Browse files
committed
Fixed dispatching errors
1 parent 49560e1 commit 3584721

7 files changed

Lines changed: 32 additions & 20 deletions

src/Dispatcher/AbstractDispatcher.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace WoohooLabs\ApiFramework\Dispatcher;
33

44
use WoohooLabs\ApiFramework\Request\RequestInterface;
5+
use WoohooLabs\ApiFramework\Response\ResponseInterface;
56

67
abstract class AbstractDispatcher
78
{
@@ -12,9 +13,10 @@ abstract class AbstractDispatcher
1213

1314
/**
1415
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
16+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
1517
* @return \WoohooLabs\ApiFramework\Response\ResponseInterface
1618
*/
17-
abstract public function dispatch(RequestInterface $request);
19+
abstract public function dispatch(RequestInterface $request, ResponseInterface $response);
1820

1921
/**
2022
* @param array $parameters

src/Dispatcher/CallbackDispatcher.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace WoohooLabs\ApiFramework\Dispatcher;
33

44
use WoohooLabs\ApiFramework\Request\RequestInterface;
5+
use WoohooLabs\ApiFramework\Response\ResponseInterface;
56

67
class CallbackDispatcher extends AbstractDispatcher
78
{
@@ -22,11 +23,12 @@ public function __construct($handler, array $parameters)
2223

2324
/**
2425
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
26+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
2527
* @return \WoohooLabs\ApiFramework\Response\ResponseInterface
2628
*/
27-
public function dispatch(RequestInterface $request)
29+
public function dispatch(RequestInterface $request, ResponseInterface $response)
2830
{
29-
return call_user_func($this->callback, $request);
31+
return call_user_func($this->callback, $request, $response);
3032
}
3133

3234
/**

src/Dispatcher/ClassDispatcher.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
use Interop\Container\ContainerInterface;
55
use WoohooLabs\ApiFramework\Config;
66
use WoohooLabs\ApiFramework\Request\RequestInterface;
7+
use WoohooLabs\ApiFramework\Response\ResponseInterface;
78

89
class ClassDispatcher extends AbstractDispatcher
910
{
@@ -41,20 +42,21 @@ public function __construct($className, $methodName, array $parameters)
4142

4243
/**
4344
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
45+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
4446
* @return \WoohooLabs\ApiFramework\Response\ResponseInterface
4547
*/
46-
public function dispatch(RequestInterface $request)
48+
public function dispatch(RequestInterface $request, ResponseInterface $response)
4749
{
4850
$object= $this->container->get($this->className);
4951

5052
if($this->config->getPreHandlerHookName() !== null && method_exists($object, $this->config->getPreHandlerHookName()) === true) {
51-
$object->{$this->config->getPreHandlerHookName($request)};
53+
$object->{$this->config->getPreHandlerHookName($request, $response)};
5254
}
5355

54-
$response= $object->{$this->methodName}($request);
56+
$response= $object->{$this->methodName}($request, $response);
5557

5658
if($this->config->getPostHandlerHookName() !== null && method_exists($object, $this->config->getPostHandlerHookName()) === true) {
57-
$object->{$this->config->getPostHandlerHookName($request)};
59+
$object->{$this->config->getPostHandlerHookName($request, $response)};
5860
}
5961

6062
return $response;

src/Event/EventDispatcherInterface.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,21 @@ public function dispatchBeforeReceivingRequest();
1010

1111
/**
1212
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
13+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
1314
*/
14-
public function dispatchAfterReceivingRequest(RequestInterface $request);
15+
public function dispatchAfterReceivingRequest(RequestInterface $request, ResponseInterface $response);
1516

1617
/**
1718
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
19+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
1820
*/
19-
public function dispatchAfterDiscovery(RequestInterface $request);
21+
public function dispatchAfterDiscovery(RequestInterface $request, ResponseInterface $response);
2022

2123
/**
2224
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
25+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
2326
*/
24-
public function dispatchAfterRouting(RequestInterface $request);
27+
public function dispatchAfterRouting(RequestInterface $request, ResponseInterface $response);
2528

2629
/**
2730
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request

src/Event/SymfonyEventDispatcher.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,31 +56,34 @@ public function dispatchBeforeReceivingRequest()
5656

5757
/**
5858
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
59+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
5960
*/
60-
public function dispatchAfterReceivingRequest(RequestInterface $request)
61+
public function dispatchAfterReceivingRequest(RequestInterface $request, ResponseInterface $response)
6162
{
6263
if ($this->eventDispatcher->hasListeners(Events::AFTER_RECEIVING_REQUEST)) {
63-
$this->dispatch(Events::AFTER_RECEIVING_REQUEST, new SymfonyEvent($request));
64+
$this->dispatch(Events::AFTER_RECEIVING_REQUEST, new SymfonyEvent($request, $response));
6465
}
6566
}
6667

6768
/**
6869
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
70+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
6971
*/
70-
public function dispatchAfterDiscovery(RequestInterface $request)
72+
public function dispatchAfterDiscovery(RequestInterface $request, ResponseInterface $response)
7173
{
7274
if ($this->eventDispatcher->hasListeners(Events::AFTER_DISCOVERY)) {
73-
$this->dispatch(Events::AFTER_DISCOVERY, new SymfonyEvent($request));
75+
$this->dispatch(Events::AFTER_DISCOVERY, new SymfonyEvent($request, $response));
7476
}
7577
}
7678

7779
/**
7880
* @param \WoohooLabs\ApiFramework\Request\RequestInterface $request
81+
* @param \WoohooLabs\ApiFramework\Response\ResponseInterface $response
7982
*/
80-
public function dispatchAfterRouting(RequestInterface $request)
83+
public function dispatchAfterRouting(RequestInterface $request, ResponseInterface $response)
8184
{
8285
if ($this->eventDispatcher->hasListeners(Events::AFTER_ROUTING)) {
83-
$this->dispatch(Events::AFTER_ROUTING, new SymfonyEvent($request));
86+
$this->dispatch(Events::AFTER_ROUTING, new SymfonyEvent($request, $response));
8487
}
8588
}
8689

src/EventApiFramework.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ protected function initializeTopComponents()
3333

3434
parent::initializeTopComponents();
3535

36-
$this->eventDispatcher->dispatchAfterReceivingRequest($this->request);
36+
$this->eventDispatcher->dispatchAfterReceivingRequest($this->request, $this->response);
3737
}
3838

3939
protected function discover()
4040
{
4141
parent::discover();
42-
$this->eventDispatcher->dispatchAfterDiscovery($this->request);
42+
$this->eventDispatcher->dispatchAfterDiscovery($this->request, $this->response);
4343
}
4444

4545
protected function route()
4646
{
4747
parent::route();
48-
$this->eventDispatcher->dispatchAfterRouting($this->request);
48+
$this->eventDispatcher->dispatchAfterRouting($this->request, $this->response);
4949
}
5050

5151
protected function respond()

src/Response/FoundationResponse.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?php
22
namespace WoohooLabs\ApiFramework\Response;
33

4-
use JMS\Serializer\SerializerInterface;
54
use Symfony\Component\HttpFoundation\Response;
65
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
6+
use WoohooLabs\ApiFramework\Serializer\SerializerInterface;
77

88
class FoundationResponse implements ResponseInterface
99
{

0 commit comments

Comments
 (0)