zend-blog-3-backend

Форк
0
/
TrackingGeoLocation.php 
46 строк · 1007.0 Байт
1
<?php
2

3
namespace App\Cron\Hourly;
4

5
use App\Cron\HourlyCronServiceInterface;
6
use App\Repository\TrackingRepository;
7
use App\Service\IpInfo;
8

9
class TrackingGeoLocation implements HourlyCronServiceInterface
10
{
11
    /**
12
     * @var TrackingRepository
13
     */
14
    private TrackingRepository $repository;
15

16
    /**
17
     * @var IpInfo
18
     */
19
    private IpInfo $ipInfo;
20

21
    /**
22
     * @param IpInfo $ipInfo
23
     * @param TrackingRepository $repository
24
     */
25
    public function __construct(IpInfo $ipInfo, TrackingRepository $repository)
26
    {
27
        $this->repository = $repository;
28
        $this->ipInfo = $ipInfo;
29
    }
30

31
    public function run(): void
32
    {
33
        $ips = $this->repository->getUncheckedIps();
34
        foreach ($ips as $ip) {
35
            $location = $this->ipInfo->getLocationByIp($ip);
36
            if ($location) {
37
                $this->repository->updateLocation($location, $ip);
38
            }
39
        }
40
    }
41

42
    public function getMessage(): ?string
43
    {
44
        return null;
45
    }
46
}
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.