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

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

プラグインファイルアップロード画面
public install ( Application $app, Request $request )
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
    public function install(Application $app, Request $request)
    {
        $form = $app['form.factory']->createBuilder('plugin_local_install')->getForm();
        $errors = array();
        if ('POST' === $request->getMethod()) {
            $form->handleRequest($request);
            if ($form->isValid()) {
                $tmpDir = null;
                try {
                    $service = $app['eccube.service.plugin'];
                    $formFile = $form['plugin_archive']->getData();
                    $tmpDir = $service->createTempDir();
                    $tmpFile = sha1(Str::random(32)) . '.' . $formFile->getClientOriginalExtension();
                    // 拡張子を付けないとpharが動かないので付ける
                    $formFile->move($tmpDir, $tmpFile);
                    $service->install($tmpDir . '/' . $tmpFile);
                    $fs = new Filesystem();
                    $fs->remove($tmpDir);
                    $app->addSuccess('admin.plugin.install.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);
                    }
                    $app['monolog']->error("plugin install failed.", array('original-message' => $e->getMessage()));
                    $errors[] = $e;
                }
            } else {
                foreach ($form->getErrors(true) as $error) {
                    $errors[] = $error;
                }
            }
        }
        return $app->render('Store/plugin_install.twig', array('form' => $form->createView(), 'errors' => $errors));
    }