mirror of
https://github.com/flextype/flextype.git
synced 2025-08-27 15:00:11 +02:00
feat(core): improve dependencies validation for Plugins API #411
This commit is contained in:
@@ -282,15 +282,39 @@ class Plugins
|
||||
if ($dependency === 'flextype') {
|
||||
if (!Semver::satisfies($this->flextype['registry']->get('flextype.manifest.version'), $constraints)) {
|
||||
$verified = false;
|
||||
|
||||
// Remove plugin where it is require this dependency
|
||||
foreach ($plugins as $_plugin_name => $_plugin_data) {
|
||||
if ($_plugin_data['manifest']['dependencies'][$plugin_name]) {
|
||||
unset($verified_plugins[$_plugin_name]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
// Verify plugin dependencies
|
||||
if (!isset($plugins[$dependency])) {
|
||||
$verified = false;
|
||||
|
||||
// Remove plugin where it is require this dependency
|
||||
foreach ($plugins as $_plugin_name => $_plugin_data) {
|
||||
if ($_plugin_data['manifest']['dependencies'][$plugin_name]) {
|
||||
unset($verified_plugins[$_plugin_name]);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$version = $plugins[$dependency]['manifest']['version'];
|
||||
if (!Semver::satisfies($version, $constraints)) {
|
||||
|
||||
$verified = false;
|
||||
|
||||
// Remove plugin where it is require this dependency
|
||||
foreach ($plugins as $_plugin_name => $_plugin_data) {
|
||||
if ($_plugin_data['manifest']['dependencies'][$plugin_name]) {
|
||||
unset($verified_plugins[$_plugin_name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,7 +327,7 @@ class Plugins
|
||||
}
|
||||
}
|
||||
|
||||
// Return verified plugins list
|
||||
// Return verified plugins list
|
||||
return $verified_plugins;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user