Code Duplication    Length = 25-26 lines in 2 locations

src/Eccube/Controller/Admin/Store/PluginController.php 2 locations

@@ 278-302 (lines=25) @@
275
     * @param Plugin      $Plugin
276
     * @return RedirectResponse
277
     */
278
    public function enable(Application $app, Plugin $Plugin)
279
    {
280
        $this->isTokenValid($app);
281
282
        if ($Plugin->isEnabled()) {
283
            $app->addError('admin.plugin.already.enable', 'admin');
284
        } else {
285
            $requires = $this->pluginService->findRequirePluginNeedEnable($Plugin->getCode());
286
            if (!empty($requires)) {
287
                $DependPlugin = $this->pluginRepository->findOneBy(['code' => $requires[0]]);
288
                $dependName = $requires[0];
289
                if ($DependPlugin) {
290
                    $dependName = $DependPlugin->getName();
291
                }
292
                $message = $app->trans('admin.plugin.enable.depend', ['%name%' => $Plugin->getName(), '%depend_name%' => $dependName]);
293
                $app->addError($message, 'admin');
294
295
                return $app->redirect($app->url('admin_store_plugin'));
296
            }
297
            $this->pluginService->enable($Plugin);
298
            $app->addSuccess('admin.plugin.enable.complete', 'admin');
299
        }
300
301
        return $app->redirect($app->url('admin_store_plugin'));
302
    }
303
304
    /**
305
     * 対象のプラグインを無効にします。
@@ 313-338 (lines=26) @@
310
     * @param Plugin      $Plugin
311
     * @return RedirectResponse
312
     */
313
    public function disable(Application $app, Plugin $Plugin)
314
    {
315
        $this->isTokenValid($app);
316
317
        if ($Plugin->isEnabled()) {
318
            $dependents = $this->pluginService->findDependentPluginNeedDisable($Plugin->getCode());
319
            if (!empty($dependents)) {
320
                $dependName = $dependents[0];
321
                $DependPlugin = $this->pluginRepository->findOneBy(['code' => $dependents[0]]);
322
                if ($DependPlugin) {
323
                    $dependName = $DependPlugin->getName();
324
                }
325
                $message = $app->trans('admin.plugin.disable.depend', ['%name%' => $Plugin->getName(), '%depend_name%' => $dependName]);
326
                $app->addError($message, 'admin');
327
328
                return $app->redirect($app->url('admin_store_plugin'));
329
            }
330
331
            $this->pluginService->disable($Plugin);
332
            $app->addSuccess('admin.plugin.disable.complete', 'admin');
333
        } else {
334
            $app->addError('admin.plugin.already.disable', 'admin');
335
        }
336
337
        return $app->redirect($app->url('admin_store_plugin'));
338
    }
339
340
    /**
341
     * 対象のプラグインを削除します。