From b9652754256baad3cc38e893aaed6bae14da3e3f Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Wed, 13 Nov 2013 15:14:06 +0100 Subject: [PATCH] check extensions in install process --- core/lib/Thelia/Install/CheckPermission.php | 57 +++++++++++++++++---- phpdoc.dist.xml | 15 ------ 2 files changed, 47 insertions(+), 25 deletions(-) delete mode 100755 phpdoc.dist.xml diff --git a/core/lib/Thelia/Install/CheckPermission.php b/core/lib/Thelia/Install/CheckPermission.php index b8c4e9888..5405c646b 100644 --- a/core/lib/Thelia/Install/CheckPermission.php +++ b/core/lib/Thelia/Install/CheckPermission.php @@ -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; diff --git a/phpdoc.dist.xml b/phpdoc.dist.xml deleted file mode 100755 index b0883cb90..000000000 --- a/phpdoc.dist.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - <![CDATA[<b>Thelia</b> e-commerce Project]]> - - documentation/api - - - documentation/api - - - core/lib/Thelia/Tests/* - core/lib/Thelia - - - \ No newline at end of file