Eccube\Controller\Admin\Store\PluginController::update PHP Метод

update() публичный Метод

インストール済プラグインからのアップデート
public update ( Application $app, Request $request, $id )
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
$id
    public function update(Application $app, Request $request, $id)
    {
        $Plugin = $app['eccube.repository.plugin']->find($id);
        $form = $app['form.factory']->createNamedBuilder('form' . $id, 'plugin_management', null, array('plugin_id' => null))->getForm();
        $message = '';
        if ('POST' === $request->getMethod()) {
            $form->handleRequest($request);
            if ($form->isValid()) {
                $tmpDir = null;
                try {
                    $formFile = $form['plugin_archive']->getData();
                    $tmpDir = $app['eccube.service.plugin']->createTempDir();
                    $tmpFile = sha1(Str::random(32)) . '.' . $formFile->getClientOriginalExtension();
                    $formFile->move($tmpDir, $tmpFile);
                    $app['eccube.service.plugin']->update($Plugin, $tmpDir . '/' . $tmpFile);
                    $fs = new Filesystem();
                    $fs->remove($tmpDir);
                    $app->addSuccess('admin.plugin.update.complete', 'admin');
                    return $app->redirect($app->url('admin_store_plugin'));
                } catch (PluginException $e) {
                    if (!empty($tmpDir) && file_exists($tmpDir)) {
                        $fs = new Filesystem();
                        $fs->remove($tmpDir);
                    }
                    $message = $e->getMessage();
                }
            } else {
                $errors = $form->getErrors(true);
                foreach ($errors as $error) {
                    $message = $error->getMessage();
                }
            }
        }
        $app->addError($message, 'admin');
        return $app->redirect($app->url('admin_store_plugin'));
    }