Skip to content

Commit eda72b4

Browse files
authored
Merge pull request #7 from rstgroup/develop
prepare for new release
2 parents 02147f9 + 66b4e4e commit eda72b4

File tree

7 files changed

+81
-25
lines changed

7 files changed

+81
-25
lines changed

.travis.yml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,34 @@ matrix:
44
fast_finish: true
55
include:
66
- php: 5.5
7+
env:
8+
- DEPS=lowest
9+
- php: 5.5
10+
env:
11+
- DEPS=latest
12+
- php: 5.6
13+
env:
14+
- DEPS=lowest
715
- php: 5.6
16+
env:
17+
- DEPS=latest
818
- php: 7
19+
env:
20+
- DEPS=lowest
21+
- php: 7
22+
env:
23+
- DEPS=latest
24+
- php: hhvm
25+
env:
26+
- DEPS=lowest
927
- php: hhvm
28+
env:
29+
- DEPS=latest
1030

1131
install:
12-
- travis_retry composer install --no-interaction --ignore-platform-reqs --prefer-source
32+
- if [[ $DEPS == 'latest' ]]; then travis_retry composer update --no-interaction --prefer-source ; fi
33+
- if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --no-interaction --prefer-source --prefer-lowest ; fi
1334
- composer info -i
1435

1536
script:
16-
- ./vendor/bin/phpunit
37+
- ./vendor/bin/phpunit

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ If you want more information, how `request id` is generating, check dependent pr
77

88
## Installation
99

10-
```json
11-
"require": {
12-
"rstgroup/request-id-module": "dev-develop"
13-
}
10+
```bash
11+
composer require rstgroup/request-id-module
1412
```
1513

1614

composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
"require": {
44
"php": ">=5.5",
55
"zendframework/zend-modulemanager": "^2.4",
6-
"php-middleware/request-id": "^3.0.0",
6+
"zendframework/zend-eventmanager": "^2.4 || ^3",
7+
"zendframework/zend-http": "^2.4",
8+
"zendframework/zend-mvc": "^2.4 || ^3",
9+
"zendframework/zend-servicemanager": "^2.4 || ^3",
10+
"zendframework/zend-stdlib": "^2.4 || ^3",
711
"zendframework/zend-psr7bridge": "^0.2",
8-
"zendframework/zend-stdlib": "^2.4"
12+
"php-middleware/request-id": "^3.0.0"
913
},
1014
"require-dev": {
1115
"phpunit/phpunit": "^4.8",
@@ -14,7 +18,7 @@
1418
"zendframework/zend-log": "^2.4",
1519
"zendframework/zend-serializer": "^2.4",
1620
"zendframework/zend-session": "^2.4",
17-
"zendframework/zend-test": "^2.4"
21+
"zendframework/zend-test": "^2.4 || ^3"
1822
},
1923
"autoload": {
2024
"psr-4": {
@@ -26,4 +30,4 @@
2630
"RstGroup\\RequestIdModule\\Test\\": "test/"
2731
}
2832
}
29-
}
33+
}

src/RequestIdListener.php

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
namespace RstGroup\RequestIdModule;
33

44
use PhpMiddleware\RequestId\Exception\MissingRequestId;
5-
use PhpMiddleware\RequestId\Exception\RequestIdExceptionInterface;
5+
use PhpMiddleware\RequestId\Generator\GeneratorInterface;
66
use PhpMiddleware\RequestId\RequestIdProviderInterface;
77
use Zend\EventManager\AbstractListenerAggregate;
88
use 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()

src/RequestIdListenerFactory.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
<?php
22
namespace RstGroup\RequestIdModule;
33

4+
use PhpMiddleware\RequestId\Generator\GeneratorInterface;
45
use PhpMiddleware\RequestId\RequestIdProviderFactoryInterface;
56

67
class RequestIdListenerFactory
78
{
89
public function __invoke($services)
910
{
11+
$requestIdGenerator = $services->get(GeneratorInterface::class);
1012
$requestIdProviderFactory = $services->get(RequestIdProviderFactoryInterface::class);
1113

1214
$config = $services->get('Config');
1315
$requestIdHeaderName = $config['rst_group']['request_id_module']['header_name'];
1416

15-
return new RequestIdListener($requestIdProviderFactory, $requestIdHeaderName);
17+
return new RequestIdListener($requestIdProviderFactory, $requestIdHeaderName, $requestIdGenerator);
1618
}
17-
}
19+
}

test/RequestIdListenerTest.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace RstGroup\RequestIdModule\Test;
33

44
use PhpMiddleware\RequestId\Exception\MissingRequestId;
5+
use PhpMiddleware\RequestId\Generator\GeneratorInterface;
56
use PhpMiddleware\RequestId\RequestIdProviderFactoryInterface;
67
use PhpMiddleware\RequestId\RequestIdProviderInterface;
78
use RstGroup\RequestIdModule\RequestIdListener;
@@ -85,7 +86,7 @@ public function it_not_add_request_id_to_response_after_load_request_id()
8586
/**
8687
* @test
8788
*/
88-
public function it_not_load_request_id_if_not_http_request()
89+
public function it_not_load_request_id_if_not_http_request_and_generator_is_undefined()
8990
{
9091
$requestIdListener = new RequestIdListener($this->requestIdProviderFactoryInterface);
9192

@@ -100,6 +101,25 @@ public function it_not_load_request_id_if_not_http_request()
100101
$this->assertNull($requestId);
101102
}
102103

104+
/**
105+
* @test
106+
*/
107+
public function it_create_request_id_if_not_http_request()
108+
{
109+
$requestId = 'e5dd58f4-b72d-4d7e-b0c9-d99040386a58';
110+
$requestIdGenerator = $this->getMock(GeneratorInterface::class);
111+
$requestIdGenerator->method('generateRequestId')->willReturn($requestId);
112+
113+
$requestIdListener = new RequestIdListener($this->requestIdProviderFactoryInterface, RequestIdListener::DEFAULT_REQUEST_ID_HEADER, $requestIdGenerator);
114+
115+
$mvcEvent = new MvcEvent();
116+
$mvcEvent->setRequest(new ConsoleRequest());
117+
118+
$requestIdListener->loadRequestId($mvcEvent);
119+
120+
$this->assertSame($requestId, $requestIdListener->getRequestId());
121+
}
122+
103123
/**
104124
* @test
105125
*/

test/TestAsset/application.config.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
return [
3+
$config = [
44
// This should be an array of module namespaces used in the application.
55
'modules' => [
66
'RstGroup\RequestIdModule'
@@ -30,3 +30,9 @@
3030
],
3131
],
3232
];
33+
34+
if (class_exists(\Zend\Router\Module::class)) {
35+
$config['modules'][] = 'Zend\Router';
36+
}
37+
38+
return $config;

0 commit comments

Comments
 (0)