translator = $translator; } public function execute() { $results = array(); $results[] = $this->checkPdo(); $results = array_merge($results, $this->checkDbAdapters()); return $results; } private function checkPdo() { $label = 'PDO ' . $this->translator->translate('Installation_Extension'); if (extension_loaded('PDO')) { $status = DiagnosticResult::STATUS_OK; } else { $status = DiagnosticResult::STATUS_WARNING; } return DiagnosticResult::singleResult($label, $status); } private function checkDbAdapters() { $results = array(); $adapters = Adapter::getAdapters(); foreach ($adapters as $adapter => $port) { $label = $adapter . ' ' . $this->translator->translate('Installation_Extension'); $results[] = DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_OK); } if (empty($adapters)) { $label = $this->translator->translate('Installation_SystemCheckDatabaseExtensions'); $comment = $this->translator->translate('Installation_SystemCheckDatabaseHelp'); $result = DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_ERROR, $comment); $result->setLongErrorMessage($this->getLongErrorMessage()); $results[] = $result; } return $results; } private function getLongErrorMessage() { $message = '

'; if (SettingsServer::isWindows()) { $message .= $this->translator->translate( 'Installation_SystemCheckWinPdoAndMysqliHelp', array('

extension=php_mysqli.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
') ); } else { $message .= $this->translator->translate( 'Installation_SystemCheckPdoAndMysqliHelp', array( '

--with-mysqli
--with-pdo-mysql

', '

extension=mysqli.so
extension=pdo.so
extension=pdo_mysql.so
' ) ); } $message .= $this->translator->translate('Installation_RestartWebServer') . '

'; $message .= $this->translator->translate('Installation_SystemCheckPhpPdoAndMysqli', array( '', '', '', '', )); $message .= '

'; return $message; } }