Skip to content

Commit 57232c2

Browse files
committed
Use the new IP address provider interface
1 parent f907ae1 commit 57232c2

File tree

4 files changed

+43
-47
lines changed

4 files changed

+43
-47
lines changed

src/EventListener/IpTraceListener.php

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/Resources/config/ip_traceable.xml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@
1212
<call method="setAnnotationReader">
1313
<argument type="service" id=".stof_doctrine_extensions.reader" on-invalid="ignore" />
1414
</call>
15-
</service>
16-
17-
<service id="stof_doctrine_extensions.event_listener.ip_trace" class="Stof\DoctrineExtensionsBundle\EventListener\IpTraceListener" public="false">
18-
<argument type="service" id="stof_doctrine_extensions.listener.ip_traceable" />
19-
<tag name="kernel.event_subscriber" />
15+
<call method="setIpAddressProvider">
16+
<argument type="service" id="stof_doctrine_extensions.tool.ip_address_provider" />
17+
</call>
2018
</service>
2119
</services>
2220
</container>

src/Resources/config/tool.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,9 @@
99
<argument type="service" id="security.token_storage" on-invalid="null" />
1010
<argument type="service" id="security.authorization_checker" on-invalid="null" />
1111
</service>
12+
13+
<service id="stof_doctrine_extensions.tool.ip_address_provider" class="Stof\DoctrineExtensionsBundle\Tool\RequestStackIpAddressProvider" public="false">
14+
<argument type="service" id="request_stack" on-invalid="null" />
15+
</service>
1216
</services>
1317
</container>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
namespace Stof\DoctrineExtensionsBundle\Tool;
4+
5+
use Gedmo\Tool\IpAddressProviderInterface;
6+
use Symfony\Component\HttpFoundation\RequestStack;
7+
8+
/**
9+
* Provides an IP address for the extensions using an IP address reference.
10+
*
11+
* @internal
12+
*/
13+
final class RequestStackIpAddressProvider implements IpAddressProviderInterface
14+
{
15+
private ?RequestStack $requestStack;
16+
17+
public function __construct(?RequestStack $requestStack)
18+
{
19+
$this->requestStack = $requestStack;
20+
}
21+
22+
public function getAddress(): ?string
23+
{
24+
if (null === $this->requestStack) {
25+
return null;
26+
}
27+
28+
$request = $this->requestStack->getCurrentRequest();
29+
30+
if (null === $request) {
31+
return null;
32+
}
33+
34+
return $request->getClientIp();
35+
}
36+
}

0 commit comments

Comments
 (0)