. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Install; use LibreNMS\Interfaces\InstallerStep; use LibreNMS\Validations\Php; class ChecksController extends InstallationController implements InstallerStep { const MODULES = ['pdo_mysql', 'mysqlnd', 'gd']; public function index() { if ($this->complete()) { $this->markStepComplete('checks'); } return view('install.checks', $this->formatData([ 'php_version' => PHP_VERSION, 'php_required' => Php::PHP_MIN_VERSION, 'php_ok' => $this->checkPhpVersion(), 'modules' => $this->moduleResults(), ])); } private function moduleResults() { $results = []; foreach (self::MODULES as $module) { $status = extension_loaded($module); $results[] = [ 'name' => str_replace('install.checks.php_module.', '', trans('install.checks.php_module.' . $module)), 'status' => $status, ]; } return $results; } private function checkPhpVersion() { return version_compare(PHP_VERSION, Php::PHP_MIN_VERSION, '>='); } public function complete(): bool { if (!$this->checkPhpVersion()) { return false; } foreach (self::MODULES as $module) { if (!extension_loaded($module)) { return false; } } return true; } public function enabled(): bool { return true; } public function icon(): string { return 'fa-list-ul fa-flip-horizontal'; } }