App\services\PluginManager::uninstall PHP Method

uninstall() public method

Uninstalls an plugin.
public uninstall ( string $name )
$name string
    public function uninstall($name)
    {
        $plugin = $this->getPlugin($name);
        $this->disable($name);
        $this->filesystem->deleteDirectory($plugin->getPath());
        // refresh plugin list
        $this->plugins = null;
        // $this->dispatcher->fire(new PluginWasUninstalled($plugin));
    }

Usage Example

 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);
 }