6 declare(strict_types=1);
10 use Composer\Package\Version\VersionParser;
22 private $dbVersionInfo;
29 $this->dbVersionInfo = $dbVersionInfo;
37 $genericMessage =
'<info>The module code base doesn\'t match the DB schema and data.</info>' .
39 '<info>Some modules use code versions newer or older than the database.</info>';
41 $versionParser =
new VersionParser();
42 $codebaseUpdateNeeded =
false;
43 foreach ($this->dbVersionInfo->getDbVersionErrors() as $error) {
48 if ($requiredVersion->matches($currentVersion)) {
49 $codebaseUpdateNeeded =
true;
52 $messages[] = sprintf(
53 "<info>%20s %10s: %11s -> %-11s</info>",
62 return implode(PHP_EOL, $messages) . ($codebaseUpdateNeeded ? $genericMessage :
'');
70 return empty($this->dbVersionInfo->getDbVersionErrors());
__construct(DbVersionInfo $dbVersionInfo)