22namespace RstGroup \RequestIdModule ;
33
44use PhpMiddleware \RequestId \Exception \MissingRequestId ;
5- use PhpMiddleware \RequestId \Exception \ RequestIdExceptionInterface ;
5+ use PhpMiddleware \RequestId \Generator \ GeneratorInterface ;
66use PhpMiddleware \RequestId \RequestIdProviderInterface ;
77use Zend \EventManager \AbstractListenerAggregate ;
88use Zend \EventManager \EventManagerInterface ;
@@ -29,13 +29,18 @@ final class RequestIdListener extends AbstractListenerAggregate implements Reque
2929
3030 protected $ requestIdProviderFactory ;
3131
32- public function __construct (RequestIdProviderFactoryInterface $ requestIdProviderFactory , $ requestIdHeaderName = self ::DEFAULT_REQUEST_ID_HEADER )
32+ private $ requestIdGenerator ;
33+
34+ public function __construct (RequestIdProviderFactoryInterface $ requestIdProviderFactory ,
35+ $ requestIdHeaderName = self ::DEFAULT_REQUEST_ID_HEADER ,
36+ GeneratorInterface $ requestIdGenerator = null )
3337 {
3438 $ this ->requestIdProviderFactory = $ requestIdProviderFactory ;
3539 $ this ->requestIdHeaderName = $ requestIdHeaderName ;
40+ $ this ->requestIdGenerator = $ requestIdGenerator ;
3641 }
3742
38- public function attach (EventManagerInterface $ events )
43+ public function attach (EventManagerInterface $ events, $ priority = 1 )
3944 {
4045 $ this ->listeners [] = $ events ->attach (MvcEvent::EVENT_BOOTSTRAP , [$ this , 'loadRequestId ' ]);
4146 $ this ->listeners [] = $ events ->attach (MvcEvent::EVENT_FINISH , [$ this , 'addRequestIdToResponse ' ]);
@@ -45,16 +50,16 @@ public function loadRequestId(MvcEvent $event)
4550 {
4651 $ request = $ event ->getRequest ();
4752
48- if (!$ request instanceof HttpRequest) {
49- return ;
50- }
51- $ psr7Request = Psr7ServerRequest::fromZend ($ request );
52-
53- $ requestIdProvider = $ this ->requestIdProviderFactory ->create ($ psr7Request );
53+ if ($ request instanceof HttpRequest) {
54+ $ psr7Request = Psr7ServerRequest::fromZend ($ request );
55+ $ requestIdProvider = $ this ->requestIdProviderFactory ->create ($ psr7Request );
56+ $ this ->requestId = $ requestIdProvider ->getRequestId ();
5457
55- $ this ->requestId = $ requestIdProvider ->getRequestId ();
58+ } elseif ($ this ->requestIdGenerator !== null ) {
59+ $ this ->requestId = $ this ->requestIdGenerator ->generateRequestId ();
60+ }
5661
57- return $ this ->requestId ;
62+ return $ this ->requestId ;
5863 }
5964
6065 public function getRequestId ()
0 commit comments