@@ -192,14 +192,14 @@ private function assertMagentoConventions($dir, $packageType, \StdClass $json)
192
192
}
193
193
194
194
/**
195
- * Returns true if package vendor is Magento.
195
+ * Checks if package vendor is Magento.
196
196
*
197
197
* @param string $packageName
198
198
* @return bool
199
199
*/
200
200
private function isVendorMagento ($ packageName )
201
201
{
202
- return strpos ($ packageName , 'magento ' ) === 0 ;
202
+ return strpos ($ packageName , 'magento/ ' ) === 0 ;
203
203
}
204
204
205
205
/**
@@ -289,12 +289,24 @@ private function assertDependsOnFramework(\StdClass $json)
289
289
private function assertPhpVersionInSync ($ name , $ phpVersion )
290
290
{
291
291
if (isset (self ::$ rootJson ['require ' ]['php ' ])) {
292
- $ this ->assertEquals (
293
- self ::$ rootJson ['require ' ]['php ' ],
294
- $ phpVersion ,
295
- "PHP version {$ phpVersion } in component {$ name } is inconsistent with version "
296
- . self ::$ rootJson ['require ' ]['php ' ] . ' in root composer.json '
297
- );
292
+ if ($ this ->isVendorMagento ($ name )) {
293
+ $ this ->assertEquals (
294
+ self ::$ rootJson ['require ' ]['php ' ],
295
+ $ phpVersion ,
296
+ "PHP version {$ phpVersion } in component {$ name } is inconsistent with version "
297
+ . self ::$ rootJson ['require ' ]['php ' ] . ' in root composer.json '
298
+ );
299
+ } else {
300
+ $ composerVersionsPattern = '{\s*\|\|?\s*} ' ;
301
+ $ rootPhpVersions = preg_split ($ composerVersionsPattern , self ::$ rootJson ['require ' ]['php ' ]);
302
+ $ modulePhpVersions = preg_split ($ composerVersionsPattern , $ phpVersion );
303
+
304
+ $ this ->assertEmpty (
305
+ array_diff ($ rootPhpVersions , $ modulePhpVersions ),
306
+ "PHP version {$ phpVersion } in component {$ name } is inconsistent with version "
307
+ . self ::$ rootJson ['require ' ]['php ' ] . ' in root composer.json '
308
+ );
309
+ }
298
310
}
299
311
}
300
312
0 commit comments