1
0
Files
breadcrumb-the-shire/pages/admin/scheduled-jobs/data().php
fs 3f0db68b27 refactor: fix all 105 PHPStan 2 strict type findings across core and modules
Resolve all non-false-positive PHPStan 2 findings, reducing the baseline
from 486 to 382 entries (only unused-public false positives remain).

Categories fixed:
- Remove 39 redundant type checks (is_string, is_array, is_object, method_exists)
- Remove 12 no-op array_values() on already-sequential lists
- Simplify 13 null-coalesce on guaranteed offsets
- Remove 8 always-true instanceof checks
- Replace 12 redundant test assertions (assertTrue(true) → addToAssertionCount)
- Simplify 6 unnecessary nullsafe operators (?-> → ->)
- Fix 6 always-true !== '' comparisons
- Fix remaining: unset.offset, return.unusedType, staticMethod narrowing

53 files changed across core/, modules/, pages/, and tests/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 12:54:20 +02:00

45 lines
1.7 KiB
PHP

<?php
use MintyPHP\Domain\Taxonomy\ScheduledJobStatus;
use MintyPHP\Service\Access\OperationsAuthorizationPolicy;
use MintyPHP\Support\Guard;
Guard::requireLogin();
Guard::requireAbilityOrForbidden(OperationsAuthorizationPolicy::ABILITY_ADMIN_JOBS_VIEW);
gridRequireGetRequest();
$scheduledJobService = app(\MintyPHP\Service\Scheduler\ScheduledJobService::class);
$filters = gridParseFiltersFromSchemaFile(__DIR__ . '/filter-schema.php');
$result = $scheduledJobService->listPaged($filters);
$rows = [];
foreach ((array) ($result['rows'] ?? []) as $row) {
$status = ScheduledJobStatus::tryNormalize((string) ($row['last_run_status'] ?? ''));
$jobKey = (string) ($row['job_key'] ?? '');
$jobLabel = trim((string) ($row['label'] ?? ''));
if ($jobLabel === '' && $jobKey !== '') {
$jobLabel = ucfirst(str_replace('_', ' ', strtolower($jobKey)));
}
$rows[] = [
'id' => (int) ($row['id'] ?? 0),
'job_key' => $jobKey,
'label' => $jobLabel,
'enabled' => (int) ($row['enabled'] ?? 0),
'schedule_summary' => $scheduledJobService->scheduleSummary($row),
'next_run_at' => dt((string) ($row['next_run_at'] ?? '')),
'last_run_finished_at' => dt((string) ($row['last_run_finished_at'] ?? '')),
'last_run_status' => $status->value ?? '',
'last_run_status_badge' => $status->badgeVariant(),
'last_run_status_label' => $status !== null ? t($status->labelToken()) : '-',
'last_error' => trim((string) ($row['last_error_code'] ?? '')) !== ''
? trim((string) ($row['last_error_code'] ?? ''))
: trim((string) ($row['last_error_message'] ?? '')),
];
}
gridJsonDataResult($rows, (int) ($result['total'] ?? 0));