check extensions in install process
This commit is contained in:
@@ -63,6 +63,14 @@ class CheckPermission extends BaseInstall
|
||||
'upload_max_filesize' => 2097152
|
||||
);
|
||||
|
||||
protected $extensions = array(
|
||||
'curl',
|
||||
'gd',
|
||||
'intl',
|
||||
'mcrypt',
|
||||
'pdo_mysql',
|
||||
);
|
||||
|
||||
protected $validationMessages = array();
|
||||
|
||||
/** @var bool If permissions are OK */
|
||||
@@ -103,6 +111,14 @@ class CheckPermission extends BaseInstall
|
||||
);
|
||||
}
|
||||
|
||||
foreach ($this->extensions as $extension) {
|
||||
$this->validationMessages[$extension] = array(
|
||||
'text' => '',
|
||||
'hint' => $this->getI18nExtensionHint(),
|
||||
'status' => true,
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($verifyInstall);
|
||||
}
|
||||
|
||||
@@ -139,6 +155,15 @@ class CheckPermission extends BaseInstall
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->extensions as $extension) {
|
||||
$this->validationMessages[$extension]['text'] = $this->getI18nExtensionText($extension, true);
|
||||
if (false === extension_loaded($extension)) {
|
||||
$this->isValid = false;
|
||||
$this->validationMessages[$extension]['status'] = false;
|
||||
$this->validationMessages[$extension]['text'] = $this->getI18nExtensionText($extension, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -176,7 +201,6 @@ class CheckPermission extends BaseInstall
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get Translated text about the directory state
|
||||
*
|
||||
@@ -198,8 +222,7 @@ class CheckPermission extends BaseInstall
|
||||
$sentence,
|
||||
array(
|
||||
'%directory%' => $directory
|
||||
),
|
||||
'install-wizard'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$translatedText = sprintf('Your directory %s needs to be writable', $directory);
|
||||
@@ -208,6 +231,19 @@ class CheckPermission extends BaseInstall
|
||||
return $translatedText;
|
||||
}
|
||||
|
||||
protected function getI18nExtensionText($extension, $isValid)
|
||||
{
|
||||
if ($isValid) {
|
||||
$sentence = '%extension% is loaded';
|
||||
} else {
|
||||
$sentence = '%extension% is not loaded';
|
||||
}
|
||||
|
||||
return $this->translator->trans($sentence, array(
|
||||
'%extension' => $extension
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Translated hint about the directory state
|
||||
*
|
||||
@@ -266,6 +302,11 @@ class CheckPermission extends BaseInstall
|
||||
return $translatedText;
|
||||
}
|
||||
|
||||
protected function getI18nExtensionHint()
|
||||
{
|
||||
return $this->translator->trans('This extension must be installed and loaded');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Translated hint about the config requirement issue
|
||||
*
|
||||
@@ -275,9 +316,7 @@ class CheckPermission extends BaseInstall
|
||||
{
|
||||
$sentence = 'Modifying this value on your server php.ini file with admin rights could help';
|
||||
$translatedText = $this->translator->trans(
|
||||
$sentence,
|
||||
array(),
|
||||
'install-wizard'
|
||||
$sentence
|
||||
);
|
||||
|
||||
return $translatedText;
|
||||
@@ -306,8 +345,7 @@ class CheckPermission extends BaseInstall
|
||||
array(
|
||||
'%expectedValue%' => $expectedValue,
|
||||
'%currentValue%' => $currentValue,
|
||||
),
|
||||
'install-wizard'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$translatedText = sprintf('Thelia needs at least PHP %s (%s currently)', $expectedValue, $currentValue);
|
||||
@@ -326,8 +364,7 @@ class CheckPermission extends BaseInstall
|
||||
$sentence = 'Upgrading your version of PHP with admin rights could help';
|
||||
$translatedText = $this->translator->trans(
|
||||
$sentence,
|
||||
array(),
|
||||
'install-wizard'
|
||||
array()
|
||||
);
|
||||
|
||||
return $translatedText;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<phpdoc>
|
||||
<title><![CDATA[<b>Thelia</b> e-commerce Project]]></title>
|
||||
<parser>
|
||||
<target>documentation/api</target>
|
||||
</parser>
|
||||
<transformer>
|
||||
<target>documentation/api</target>
|
||||
</transformer>
|
||||
<files>
|
||||
<ignore>core/lib/Thelia/Tests/*</ignore>
|
||||
<directory>core/lib/Thelia</directory>
|
||||
|
||||
</files>
|
||||
</phpdoc>
|
||||
Reference in New Issue
Block a user