Skip to content
← Back to Functions
Code

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;
}