PluginProbe
404 Solution / 4.3.0
404 Solution v4.3.0
4.3.5 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.2.0 4.1.19 4.1.18 4.1.17 4.1.16 4.1.15 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.1.7 4.1.6 4.1.5 4.1.4 4.1.3 trunk 2.30.0 All 109 releases
404-solution / includes / frontend / FrontendHitRecorder.php

FrontendHitRecorder.php in 404 Solution 4.3.0, at includes/frontend/FrontendHitRecorder.php

36 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!defined('ABSPATH')) {
4 exit;
5 }
6
7 /**
8 * Writes frontend redirect-hit log records when a compatible log writer exists.
9 */
10 class ABJ_404_Solution_FrontendHitRecorder {
11
12 /** @var mixed */
13 private $logsRepository;
14
15 /**
16 * @param mixed $logsRepository Object exposing logRedirectHit().
17 */
18 function __construct($logsRepository) {
19 $this->logsRepository = $logsRepository;
20 }
21
22 /**
23 * @param string $requestedUrl
24 * @param string $action
25 * @param string $matchReason
26 * @param string|null $requestedUrlDetail
27 * @param list<array{step: string, outcome: string, detail: string}>|null $pipelineTrace
28 */
29 function record(string $requestedUrl, string $action, string $matchReason, ?string $requestedUrlDetail = null, ?array $pipelineTrace = null): void {
30 if (!is_object($this->logsRepository) || !is_callable(array($this->logsRepository, 'logRedirectHit'))) {
31 return;
32 }
33 call_user_func(array($this->logsRepository, 'logRedirectHit'), ABJ_404_Solution_RedirectHitLogEntry::create($requestedUrl, $action, $matchReason, $requestedUrlDetail, $pipelineTrace));
34 }
35 }
36