Pico::sortPlugins(): Fix sorting of non-native plugins

This commit is contained in:
Daniel Rudolf 2017-10-12 12:12:37 +02:00
parent 20297deaec
commit 9dcb06c258
No known key found for this signature in database
GPG key ID: A061F02CD8DE4538

View file

@ -692,9 +692,17 @@ class Pico
protected function sortPlugins() protected function sortPlugins()
{ {
$plugins = $this->plugins; $plugins = $this->plugins;
$nativePlugins = $this->nativePlugins;
$sortedPlugins = array(); $sortedPlugins = array();
$visitedPlugins = array(); $visitedPlugins = array();
$visitPlugin = function ($plugin) use ($plugins, &$sortedPlugins, &$visitedPlugins, &$visitPlugin) {
$visitPlugin = function ($plugin) use (
$plugins,
$nativePlugins,
&$sortedPlugins,
&$visitedPlugins,
&$visitPlugin
) {
$pluginName = get_class($plugin); $pluginName = get_class($plugin);
// skip already visited plugins and ignore circular dependencies // skip already visited plugins and ignore circular dependencies
@ -705,7 +713,7 @@ class Pico
if ($plugin instanceof PicoPluginInterface) { if ($plugin instanceof PicoPluginInterface) {
$dependencies = $plugin->getDependencies(); $dependencies = $plugin->getDependencies();
} }
if (!isset($this->nativePlugins[$pluginName])) { if (!isset($nativePlugins[$pluginName])) {
$dependencies[] = 'PicoDeprecated'; $dependencies[] = 'PicoDeprecated';
} }