芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/invoicer.pulsehost.co.uk/app/Space/RequirementsChecker.php
$requirement) { switch ($type) { // check php requirements case 'php': foreach ($requirements[$type] as $requirement) { $results['requirements'][$type][$requirement] = true; if (! extension_loaded($requirement)) { $results['requirements'][$type][$requirement] = false; $results['errors'] = true; } } break; // check apache requirements case 'apache': foreach ($requirements[$type] as $requirement) { // if function doesn't exist we can't check apache modules if (function_exists('apache_get_modules')) { $results['requirements'][$type][$requirement] = true; if (! in_array($requirement, apache_get_modules())) { $results['requirements'][$type][$requirement] = false; $results['errors'] = true; } } } break; } } return $results; } /** * Check PHP version requirement. * * @return array */ public function checkPHPVersion(?string $minPhpVersion = null) { $minVersionPhp = $minPhpVersion; $currentPhpVersion = $this->getPhpVersionInfo(); $supported = false; if ($minPhpVersion == null) { $minVersionPhp = $this->getMinPhpVersion(); } if (version_compare($currentPhpVersion['version'], $minVersionPhp) >= 0) { $supported = true; } $phpStatus = [ 'full' => $currentPhpVersion['full'], 'current' => $currentPhpVersion['version'], 'minimum' => $minVersionPhp, 'supported' => $supported, ]; return $phpStatus; } /** * Get current Php version information. * * @return array */ private static function getPhpVersionInfo() { $currentVersionFull = PHP_VERSION; preg_match("#^\d+(\.\d+)*#", $currentVersionFull, $filtered); $currentVersion = $filtered[0]; return [ 'full' => $currentVersionFull, 'version' => $currentVersion, ]; } /** * Get minimum PHP version ID. * * @return string _minPhpVersion */ protected function getMinPhpVersion() { return $this->_minPhpVersion; } /** * Check PHP version requirement. * * @return array */ public function checkMysqlVersion($conn) { $version_info = $conn->getAttribute(PDO::ATTR_SERVER_VERSION); $isMariaDb = Str::contains($version_info, 'MariaDB'); $minVersionMysql = $isMariaDb ? config('invoiceshelf.min_mariadb_version') : config('invoiceshelf.min_mysql_version'); $currentMysqlVersion = $this->getMysqlVersionInfo($conn); $supported = false; if (version_compare($currentMysqlVersion, $minVersionMysql) >= 0) { $supported = true; } $phpStatus = [ 'current' => $currentMysqlVersion, 'minimum' => $minVersionMysql, 'supported' => $supported, ]; return $phpStatus; } /** * Get current Mysql version information. * * @return string */ private static function getMysqlVersionInfo($pdo) { $version = $pdo->query('select version()')->fetchColumn(); preg_match("/^[0-9\.]+/", $version, $match); return $match[0]; } /** * Check Sqlite version requirement. * * @return array */ public function checkSqliteVersion(?string $minSqliteVersion = null) { $minVersionSqlite = $minSqliteVersion; $currentSqliteVersion = $this->getSqliteVersionInfo(); $supported = false; if (version_compare($currentSqliteVersion, $minVersionSqlite) >= 0) { $supported = true; } $phpStatus = [ 'current' => $currentSqliteVersion, 'minimum' => $minVersionSqlite, 'supported' => $supported, ]; return $phpStatus; } /** * Get current Sqlite version information. * * @return string */ private static function getSqliteVersionInfo() { $currentVersion = SQLite3::version(); return $currentVersion['versionString']; } /** * Check Pgsql version requirement. * * @return array */ public function checkPgsqlVersion($conn, ?string $minPgsqlVersion = null) { $minVersionPgsql = $minPgsqlVersion; $currentPgsqlVersion = $this->getPgsqlVersionInfo($conn); $supported = false; if (version_compare($currentPgsqlVersion, $minVersionPgsql) >= 0) { $supported = true; } $phpStatus = [ 'current' => $currentPgsqlVersion, 'minimum' => $minVersionPgsql, 'supported' => $supported, ]; return $phpStatus; } /** * Get current Pgsql version information. * * @return string */ private static function getPgsqlVersionInfo($conn) { $currentVersion = pg_version($conn); return $currentVersion['server']; } }