mirror of
https://github.com/freescout-helpdesk/freescout.git
synced 2024-11-24 19:33:07 +01:00
Check max PHP version in the installer
This commit is contained in:
parent
dc567ea94f
commit
c4bf136fbd
@ -105,6 +105,7 @@
|
||||
"vendor/axn/laravel-laroute/src/Routes/Collection.php",
|
||||
"vendor/webklex/laravel-imap/src/IMAP/Message.php",
|
||||
"vendor/webklex/laravel-imap/src/IMAP/Client.php",
|
||||
"vendor/rachidlaasri/laravel-installer/src/Helpers/RequirementsChecker.php",
|
||||
"vendor/rachidlaasri/laravel-installer/src/Helpers/PermissionsChecker.php",
|
||||
"vendor/rachidlaasri/laravel-installer/src/Helpers/EnvironmentManager.php",
|
||||
"vendor/rachidlaasri/laravel-installer/src/Helpers/FinalInstallManager.php",
|
||||
|
@ -18,6 +18,7 @@ return [
|
||||
*/
|
||||
'core' => [
|
||||
'minPhpVersion' => '7.0.0',
|
||||
'maxPhpVersion' => '7.3.99',
|
||||
],
|
||||
'final' => [
|
||||
'key' => false,
|
||||
|
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace RachidLaasri\LaravelInstaller\Helpers;
|
||||
|
||||
class RequirementsChecker
|
||||
{
|
||||
|
||||
/**
|
||||
* Minimum PHP Version Supported (Override is in installer.php config file).
|
||||
*
|
||||
* @var _minPhpVersion
|
||||
*/
|
||||
private $_minPhpVersion = '7.0.0';
|
||||
|
||||
/**
|
||||
* Check for the server requirements.
|
||||
*
|
||||
* @param array $requirements
|
||||
* @return array
|
||||
*/
|
||||
public function check(array $requirements)
|
||||
{
|
||||
$results = [];
|
||||
|
||||
foreach($requirements as $type => $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;
|
||||
}
|
||||
|
||||
if (!version_compare($currentPhpVersion['version'], config('installer.core.maxPhpVersion'), '<=')) {
|
||||
$supported = false;
|
||||
}
|
||||
|
||||
$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;
|
||||
}
|
||||
|
||||
}
|
@ -14,11 +14,12 @@
|
||||
@foreach($requirements['requirements'] as $type => $requirement)
|
||||
<ul class="list">
|
||||
<li class="list__item list__title {{ $phpSupportInfo['supported'] ? 'success' : 'error' }}">
|
||||
<strong>{{ ucfirst($type) }}</strong>
|
||||
<strong>@if ($type != 'php'){{ ucfirst($type) }}@else PHP @endif</strong>
|
||||
@if($type == 'php')
|
||||
<strong>
|
||||
<small>
|
||||
(version {{ $phpSupportInfo['minimum'] }} required)
|
||||
<?php /*(version {{ $phpSupportInfo['minimum'] }} required)*/ ?>
|
||||
(7.0 - 7.3)
|
||||
</small>
|
||||
</strong>
|
||||
<span class="float-right">
|
||||
|
Loading…
Reference in New Issue
Block a user