31 public function check(): ?array {
34 $requiredButMissing = [];
36 $installed = $this->composerLock->getInstalledDependencies();
37 foreach ( $this->composerJson->getRequiredDependencies() as $name => $version ) {
39 if ( !isset( $installed[$name] ) ) {
40 $requiredButMissing[] = [
42 'wantedVersion' => $version
48 if ( !SemVer::satisfies( $installed[$name][
'version'], $version ) ) {
51 'wantedVersion' => $version,
52 'suppliedVersion' => $installed[$name][
'version']
59 foreach ( $requiredButOld as [
61 "suppliedVersion" => $suppliedVersion,
62 "wantedVersion" => $wantedVersion
64 $errors[] =
"$name: $suppliedVersion installed, $wantedVersion required.";
67 foreach ( $requiredButMissing as [
69 "wantedVersion" => $wantedVersion
71 $errors[] =
"$name: not installed, $wantedVersion required.";
74 return $errors ?:
null;