45 public function check(): ?array {
48 $requiredButMissing = [];
50 $installed = $this->composerLock->getInstalledDependencies();
51 foreach ( $this->composerJson->getRequiredDependencies() as $name => $version ) {
53 if ( !isset( $installed[$name] ) ) {
54 $requiredButMissing[] = [
56 'wantedVersion' => $version
62 if ( !SemVer::satisfies( $installed[$name][
'version'], $version ) ) {
65 'wantedVersion' => $version,
66 'suppliedVersion' => $installed[$name][
'version']
73 foreach ( $requiredButOld as [
75 "suppliedVersion" => $suppliedVersion,
76 "wantedVersion" => $wantedVersion
78 $errors[] =
"$name: $suppliedVersion installed, $wantedVersion required.";
81 foreach ( $requiredButMissing as [
83 "wantedVersion" => $wantedVersion
85 $errors[] =
"$name: not installed, $wantedVersion required.";
88 return $errors ?:
null;