zend-blog-3-backend
46 строк · 1007.0 Байт
1<?php
2
3namespace App\Cron\Hourly;
4
5use App\Cron\HourlyCronServiceInterface;
6use App\Repository\TrackingRepository;
7use App\Service\IpInfo;
8
9class TrackingGeoLocation implements HourlyCronServiceInterface
10{
11/**
12* @var TrackingRepository
13*/
14private TrackingRepository $repository;
15
16/**
17* @var IpInfo
18*/
19private IpInfo $ipInfo;
20
21/**
22* @param IpInfo $ipInfo
23* @param TrackingRepository $repository
24*/
25public function __construct(IpInfo $ipInfo, TrackingRepository $repository)
26{
27$this->repository = $repository;
28$this->ipInfo = $ipInfo;
29}
30
31public function run(): void
32{
33$ips = $this->repository->getUncheckedIps();
34foreach ($ips as $ip) {
35$location = $this->ipInfo->getLocationByIp($ip);
36if ($location) {
37$this->repository->updateLocation($location, $ip);
38}
39}
40}
41
42public function getMessage(): ?string
43{
44return null;
45}
46}
47