System Health Checklist
Checks PHP version, extensions, writable paths, DB connectivity, and required assets.
Function signature
ogBuildSystemHealthChecklist(requirements = array())
Categories
- File and Upload Safety
Parameters
requirementsSystem requirements to evaluate for a safe health checklist.Return value
Public-safe status string returned by the function for explicit controller branching or logging.
- success
- message
- data
Compatibility
Existing function name, slug, path, and call order preserved; advertised metadata corrected to the actual source behavior.
Minimum PHP version: 7.4
Security notes
Use caller-owned allowlists and context-specific escaping; validate admin actions, export fields, privacy plans, cache keys, templates, settings, routes, and ecommerce policies before production use.
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Checks PHP version, extensions, writable paths, DB connectivity, and required assets.
*
* Primary use case: Admin diagnostics.
* Typical inputs: expected requirements.
* Typical output: health checklist.
*
* Implementation note: Do not show sensitive server details publicly.
*
* @param array $requirements Expected PHP version, extensions, paths, and files.
* @return array Safe system health checklist.
*/
function ogBuildSystemHealthChecklist($requirements = array()) {
$result = array(
'success' => false,
'message' => '',
'data' => array()
);
if (!is_array($requirements)) {
$requirements = array();
}
$checks = array();
$pass_count = 0;
$fail_count = 0;
$minimum_php = '8.1.0';
if (!empty($requirements['minimum_php'])) {
$minimum_php = (string)$requirements['minimum_php'];
}
$php_passed = version_compare(PHP_VERSION, $minimum_php, '>=');
$checks[] = array('name' => 'php_version', 'passed' => $php_passed, 'public_value' => PHP_VERSION);
if (!empty($requirements['extensions']) && is_array($requirements['extensions'])) {
foreach ($requirements['extensions'] as $extension) {
$extension = trim((string)$extension);
if (empty($extension)) {
continue;
}
$checks[] = array('name' => 'extension_' . $extension, 'passed' => extension_loaded($extension), 'public_value' => $extension);
}
}
if (!empty($requirements['writable_paths']) && is_array($requirements['writable_paths'])) {
foreach ($requirements['writable_paths'] as $label => $path) {
$path = (string)$path;
$checks[] = array('name' => 'writable_' . (string)$label, 'passed' => is_writable($path), 'public_value' => basename($path));
}
}
foreach ($checks as $check) {
if (!empty($check['passed'])) {
$pass_count++;
} else {
$fail_count++;
}
}
$result['success'] = true;
$result['message'] = 'System health checklist built.';
$result['data'] = array('checks' => $checks, 'passed' => $pass_count, 'failed' => $fail_count);
return $result;
}