PluginProbe
404 Solution / trunk
404 Solution vtrunk
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 trunk, 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