Xpressengine\Plugin\PluginProvider::sync PHP Method

sync() public method

현재 설치된 plugin들의 정보를 자료실에 등록된 정보를 가져와 적용한다.
public sync ( PluginEntity | PluginEntity[] $plugins ) : boolean
$plugins PluginEntity | PluginEntity[] list of plugins
return boolean 성공여부
    public function sync($plugins)
    {
        if (!is_array($plugins)) {
            $plugins = [$plugins->getId() => $plugins];
        }
        $ids = array_keys($plugins);
        try {
            $infos = $this->findAll($ids);
        } catch (ConnectException $e) {
            return false;
        } catch (RequestException $e) {
            return false;
        }
        foreach ($infos as $data) {
            list($vendor, $id) = explode('/', $data->name);
            $plugin = $plugins[$id];
            if ($plugin->isDevelopMode() === false) {
                $plugin->setRemoteData($data);
            }
        }
        return true;
    }

Usage Example

Exemplo n.º 1
0
 public function show($pluginId, PluginHandler $handler, PluginProvider $provider)
 {
     // refresh plugin cache
     $handler->getAllPlugins(true);
     $componentTypes = $this->getComponentTypes();
     $plugin = $handler->getPlugin($pluginId);
     $provider->sync($plugin);
     return XePresenter::make('show', compact('plugin', 'componentTypes'));
 }