| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Diagnostics\Diagnostic; |
|
|
| use Piwik\Common; |
| use Piwik\Config; |
| use Piwik\Db; |
| use Piwik\SettingsPiwik; |
| use Piwik\Translation\Translator; |
|
|
| |
| |
| |
| class DatabaseInformational implements Diagnostic |
| { |
| |
| |
| |
| private $translator; |
|
|
| public function __construct(Translator $translator) |
| { |
| $this->translator = $translator; |
| } |
|
|
| public function execute() |
| { |
| $results = []; |
|
|
| if (SettingsPiwik::isMatomoInstalled()) { |
| $dbConfig = Config::getInstance()->database; |
| $results[] = DiagnosticResult::informationalResult('DB Prefix', $dbConfig['tables_prefix']); |
| $results[] = DiagnosticResult::informationalResult('DB Charset', $dbConfig['charset']); |
| $results[] = DiagnosticResult::informationalResult('DB Collation', $dbConfig['collation']); |
| $results[] = DiagnosticResult::informationalResult('DB Adapter', $dbConfig['adapter']); |
| $results[] = DiagnosticResult::informationalResult('MySQL Version', $this->getServerVersion()); |
| $results[] = DiagnosticResult::informationalResult('Num Tables', $this->getNumMatomoTables()); |
| } |
|
|
| return $results; |
| } |
|
|
| private function getServerVErsion() |
| { |
| try { |
| return Db::get()->getServerVersion(); |
| } catch (\Exception $e) { |
| return $e->getMessage(); |
| } |
| } |
|
|
| private function getNumMatomoTables() |
| { |
| $prefix = Common::prefixTable(''); |
|
|
| $results = null; |
| try { |
| $results = Db::get()->fetchAll('show tables like "' . $prefix . '%"'); |
| } catch (\Exception $e) { |
| return $e->getMessage(); |
| } |
|
|
| if (defined('PIWIK_TEST_MODE') && PIWIK_TEST_MODE) { |
| return '89'; |
| } |
|
|
| return count($results); |
| } |
| } |
|
|