| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Diagnostics; |
|
|
| use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; |
| use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; |
|
|
| |
| |
| |
| |
| |
| class DiagnosticService |
| { |
| |
| |
| |
| private $mandatoryDiagnostics; |
|
|
| |
| |
| |
| private $optionalDiagnostics; |
|
|
| |
| |
| |
| private $informationDiagnostics; |
|
|
| |
| |
| |
| |
| |
| public function __construct(array $mandatoryDiagnostics, array $optionalDiagnostics, array $informationDiagnostics, array $disabledDiagnostics) |
| { |
| $this->mandatoryDiagnostics = $this->removeDisabledDiagnostics($mandatoryDiagnostics, $disabledDiagnostics); |
| $this->optionalDiagnostics = $this->removeDisabledDiagnostics($optionalDiagnostics, $disabledDiagnostics); |
| $this->informationDiagnostics = $this->removeDisabledDiagnostics($informationDiagnostics, $disabledDiagnostics); |
| } |
|
|
| |
| |
| |
| public function runDiagnostics() |
| { |
| return new DiagnosticReport( |
| $this->run($this->mandatoryDiagnostics), |
| $this->run($this->optionalDiagnostics), |
| $this->run($this->informationDiagnostics) |
| ); |
| } |
|
|
| |
| |
| |
| |
| private function run(array $diagnostics) |
| { |
| $results = array(); |
|
|
| foreach ($diagnostics as $diagnostic) { |
| $results = array_merge($results, $diagnostic->execute()); |
| } |
|
|
| return $results; |
| } |
|
|
| private function removeDisabledDiagnostics(array $diagnostics, array $disabledDiagnostics) |
| { |
| return array_filter($diagnostics, function (Diagnostic $diagnostic) use ($disabledDiagnostics) { |
| return ! in_array($diagnostic, $disabledDiagnostics, true); |
| }); |
| } |
| } |
|
|