. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Install; use LibreNMS\Validations\Php; class ChecksController extends \App\Http\Controllers\Controller { public function __invoke() { $results = []; $php_ok = version_compare(PHP_VERSION, Php::PHP_MIN_VERSION, '>='); // bitwise and so all checks run if ($php_ok & $this->checkPhpModule($results, 'pdo_mysql') & $this->checkPhpModule($results, 'mysqlnd') & $this->checkPhpModule($results, 'gd') ) { session(['install.checks' => true]); } return view('install.checks', [ 'php_version' => PHP_VERSION, 'php_required' => Php::PHP_MIN_VERSION, 'php_ok' => $php_ok, 'modules' => $results ]); } private function checkPhpModule(&$results, $module) { $status = extension_loaded("$module"); $results[] = [ 'name' => str_replace('install.checks.php_module.', '', trans('install.checks.php_module.' . $module)), 'status' => $status, ]; return $status; } public static function enabled() { return true; } public static function icon(): string { return 'fa-list-ul fa-flip-horizontal'; } }