public function getAllPlugins($refresh = false)
{
if ($refresh === true) {
$this->plugins->initialize(true);
// 각 플러그인의 설치된 버전과 실제버전이 다르고, 별도의 install이나 update가 필요없을 경우, 설치된 버전정보를 갱신한다.
foreach ($this->plugins->getList() as $plugin) {
/** @var PluginEntity $plugin */
$installedVersion = $plugin->getInstalledVersion();
$sourceVersion = $plugin->getVersion();
if ($sourceVersion !== $installedVersion) {
if ($plugin->checkInstalled($installedVersion) && $plugin->checkUpdated($installedVersion)) {
$this->setPluginStatus($plugin->getId(), ['version' => $sourceVersion, 'status' => $plugin->getStatus()]);
$plugin->setInstalledVersion($sourceVersion);
}
}
}
}
return $this->plugins;
}