У каждой модули есть список требовании подключении модули. Например чат требует модуль комментарии и пользователь. Поэтому чат станет 3 очередь. Но проблема том что я его пробовал, но сортирует не правильно! PHP: usort($components, function (\Component $a, \Component $b) { $dependencies = $a['info']['dependencies'] ?? []; return (in_array($b->getName(), $dependencies)) ? 1 : 0; }); Навзание: Требование chat: ['comment'] comment ['user'] user ['system'] system Результат: system comment chat user Не правильно. коммент должен после пользователя. Но почему так вышло?
так а зачем тебе сортировка? сделай просто - подключаешь нужный модуль - он смотрит зависимости. Если зависимость уже подключена, то переходишь к следующей по списку, если нет, то подключаешь рекурсивно и переходишь к следующей.