update plugin manger as singleton.

This commit is contained in:
Edward Yang 2022-07-25 14:55:14 +08:00
parent 4ed20f7acb
commit 18b9752ce1
3 changed files with 10 additions and 12 deletions

View File

@ -26,7 +26,7 @@ class PluginController extends Controller
*/ */
public function index() public function index()
{ {
$plugins = (new Manager)->getPlugins(); $plugins = app('plugin')->getPlugins();
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize()); $data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
return view('admin::pages.plugins.index', $data); return view('admin::pages.plugins.index', $data);
} }
@ -49,7 +49,7 @@ class PluginController extends Controller
*/ */
public function install(Request $request, $code): array public function install(Request $request, $code): array
{ {
$plugin = (new Manager)->getPluginOrFail($code); $plugin = app('plugin')->getPluginOrFail($code);
PluginRepo::installPlugin($plugin); PluginRepo::installPlugin($plugin);
return json_success("安装成功"); return json_success("安装成功");
} }
@ -63,7 +63,7 @@ class PluginController extends Controller
*/ */
public function uninstall(Request $request, $code): array public function uninstall(Request $request, $code): array
{ {
$plugin = (new Manager)->getPluginOrFail($code); $plugin = app('plugin')->getPluginOrFail($code);
PluginRepo::uninstallPlugin($plugin); PluginRepo::uninstallPlugin($plugin);
return json_success("卸载成功"); return json_success("卸载成功");
} }
@ -77,7 +77,7 @@ class PluginController extends Controller
*/ */
public function edit(Request $request, $code): View public function edit(Request $request, $code): View
{ {
$data['plugin'] = (new Manager)->getPluginOrFail($code); $data['plugin'] = app('plugin')->getPluginOrFail($code);
return view('admin::pages.plugins.form', $data); return view('admin::pages.plugins.form', $data);
} }
@ -90,7 +90,7 @@ class PluginController extends Controller
*/ */
public function update(Request $request, $code): array public function update(Request $request, $code): array
{ {
(new Manager)->getPluginOrFail($code); app('plugin')->getPluginOrFail($code);
$fields = $request->all(); $fields = $request->all();
SettingRepo::update('plugin', $code, $fields); SettingRepo::update('plugin', $code, $fields);
return json_success("编辑成功"); return json_success("编辑成功");
@ -105,7 +105,7 @@ class PluginController extends Controller
*/ */
public function updateStatus(Request $request, $code): array public function updateStatus(Request $request, $code): array
{ {
(new Manager)->getPluginOrFail($code); app('plugin')->getPluginOrFail($code);
$status = $request->get('status'); $status = $request->get('status');
SettingRepo::update('plugin', $code, ['status' => $status]); SettingRepo::update('plugin', $code, ['status' => $status]);
return json_success("编辑成功"); return json_success("编辑成功");

View File

@ -134,7 +134,7 @@ class PluginRepo
{ {
$allPlugins = self::allPlugins(); $allPlugins = self::allPlugins();
return $allPlugins->where('type', 'shipping')->filter(function ($item) { return $allPlugins->where('type', 'shipping')->filter(function ($item) {
$plugin = (new Manager)->getPlugin($item->code); $plugin = app('plugin')->getPlugin($item->code);
if ($plugin) { if ($plugin) {
$item->plugin = $plugin; $item->plugin = $plugin;
} }
@ -150,7 +150,7 @@ class PluginRepo
{ {
$allPlugins = self::allPlugins(); $allPlugins = self::allPlugins();
return $allPlugins->where('type', 'payment')->filter(function ($item) { return $allPlugins->where('type', 'payment')->filter(function ($item) {
$plugin = (new Manager)->getPlugin($item->code); $plugin = app('plugin')->getPlugin($item->code);
if ($plugin) { if ($plugin) {
$item->plugin = $plugin; $item->plugin = $plugin;
} }

View File

@ -32,12 +32,10 @@ class PluginServiceProvider extends ServiceProvider
/** /**
* Bootstrap Plugin Service Provider * Bootstrap Plugin Service Provider
*
* @param Manager $manager
* @throws \Exception
*/ */
public function boot(Manager $manager) public function boot()
{ {
$manager = app('plugin');
$plugins = $manager->getPlugins(); $plugins = $manager->getPlugins();
$bootstraps = $manager->getEnabledBootstraps(); $bootstraps = $manager->getEnabledBootstraps();
$pluginBasePath = base_path('plugins'); $pluginBasePath = base_path('plugins');