App\Http\Controllers\PluginController::manage PHP Method

manage() public method

public manage ( Illuminate\Http\Request $request, PluginManager $plugins )
$request Illuminate\Http\Request
$plugins App\services\PluginManager
    public function manage(Request $request, PluginManager $plugins)
    {
        if ($request->has('action') && $request->has('id')) {
            $id = $request->get('id');
            if ($plugins->getPlugins()->has($id)) {
                $plugin = $plugins->getPlugin($id);
                switch ($request->get('action')) {
                    case 'enable':
                        $plugins->enable($id);
                        return redirect('admin/plugins/manage');
                        break;
                    case 'disable':
                        $plugins->disable($id);
                        return redirect('admin/plugins/manage');
                        break;
                    case 'delete':
                        if ($request->isMethod('post')) {
                            event(new Events\PluginWasDeleted($plugin));
                            $plugins->uninstall($id);
                            return json('插件已被成功删除', 0);
                        }
                        break;
                    case 'config':
                        if ($plugin->isEnabled() && $plugin->hasConfigView()) {
                            return View::file($plugin->getViewPath('config'));
                        } else {
                            abort(404);
                        }
                        break;
                    default:
                        # code...
                        break;
                }
            }
        }
        $data = ['installed' => $plugins->getPlugins(), 'enabled' => $plugins->getEnabledPlugins()];
        return view('admin.plugins', $data);
    }
PluginController