From bec9336f2f4cd41b7012f5eb95030aa62ef00c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Tue, 18 Jun 2024 01:20:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84php=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/plugins/php_controller.go | 88 +++++--------- internal/services/php.go | 18 +-- routes/plugin.go | 113 +++--------------- 3 files changed, 42 insertions(+), 177 deletions(-) diff --git a/app/http/controllers/plugins/php_controller.go b/app/http/controllers/plugins/php_controller.go index 6a1be0d66..13d72600c 100644 --- a/app/http/controllers/plugins/php_controller.go +++ b/app/http/controllers/plugins/php_controller.go @@ -2,64 +2,19 @@ package plugins import ( "github.com/TheTNB/panel/app/http/controllers" - "github.com/TheTNB/panel/internal" "github.com/TheTNB/panel/internal/services" "github.com/goravel/framework/contracts/http" ) -type PHPController struct { - service internal.PHP -} - -func NewPHPController(version uint) *PHPController { - return &PHPController{ - service: services.NewPHPImpl(version), - } -} - -func (r *PHPController) Status(ctx http.Context) http.Response { - status, err := r.service.Status() - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) - } - - return controllers.Success(ctx, status) -} - -func (r *PHPController) Reload(ctx http.Context) http.Response { - if err := r.service.Reload(); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) - } - - return controllers.Success(ctx, nil) -} +type PHPController struct{} -func (r *PHPController) Start(ctx http.Context) http.Response { - if err := r.service.Start(); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) - } - - return controllers.Success(ctx, nil) -} - -func (r *PHPController) Stop(ctx http.Context) http.Response { - if err := r.service.Stop(); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) - } - - return controllers.Success(ctx, nil) -} - -func (r *PHPController) Restart(ctx http.Context) http.Response { - if err := r.service.Restart(); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) - } - - return controllers.Success(ctx, nil) +func NewPHPController() *PHPController { + return &PHPController{} } func (r *PHPController) GetConfig(ctx http.Context) http.Response { - config, err := r.service.GetConfig() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + config, err := service.GetConfig() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -68,8 +23,9 @@ func (r *PHPController) GetConfig(ctx http.Context) http.Response { } func (r *PHPController) SaveConfig(ctx http.Context) http.Response { + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) config := ctx.Request().Input("config") - if err := r.service.SaveConfig(config); err != nil { + if err := service.SaveConfig(config); err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -77,7 +33,8 @@ func (r *PHPController) SaveConfig(ctx http.Context) http.Response { } func (r *PHPController) GetFPMConfig(ctx http.Context) http.Response { - config, err := r.service.GetFPMConfig() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + config, err := service.GetFPMConfig() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -86,8 +43,9 @@ func (r *PHPController) GetFPMConfig(ctx http.Context) http.Response { } func (r *PHPController) SaveFPMConfig(ctx http.Context) http.Response { + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) config := ctx.Request().Input("config") - if err := r.service.SaveFPMConfig(config); err != nil { + if err := service.SaveFPMConfig(config); err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -95,7 +53,8 @@ func (r *PHPController) SaveFPMConfig(ctx http.Context) http.Response { } func (r *PHPController) Load(ctx http.Context) http.Response { - load, err := r.service.Load() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + load, err := service.Load() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -104,17 +63,20 @@ func (r *PHPController) Load(ctx http.Context) http.Response { } func (r *PHPController) ErrorLog(ctx http.Context) http.Response { - log, _ := r.service.GetErrorLog() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + log, _ := service.GetErrorLog() return controllers.Success(ctx, log) } func (r *PHPController) SlowLog(ctx http.Context) http.Response { - log, _ := r.service.GetSlowLog() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + log, _ := service.GetSlowLog() return controllers.Success(ctx, log) } func (r *PHPController) ClearErrorLog(ctx http.Context) http.Response { - err := r.service.ClearErrorLog() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + err := service.ClearErrorLog() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -123,7 +85,8 @@ func (r *PHPController) ClearErrorLog(ctx http.Context) http.Response { } func (r *PHPController) ClearSlowLog(ctx http.Context) http.Response { - err := r.service.ClearSlowLog() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + err := service.ClearSlowLog() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -132,7 +95,8 @@ func (r *PHPController) ClearSlowLog(ctx http.Context) http.Response { } func (r *PHPController) GetExtensionList(ctx http.Context) http.Response { - extensions, err := r.service.GetExtensions() + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) + extensions, err := service.GetExtensions() if err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -141,12 +105,13 @@ func (r *PHPController) GetExtensionList(ctx http.Context) http.Response { } func (r *PHPController) InstallExtension(ctx http.Context) http.Response { + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) slug := ctx.Request().Input("slug") if len(slug) == 0 { return controllers.Error(ctx, http.StatusUnprocessableEntity, "参数错误") } - if err := r.service.InstallExtension(slug); err != nil { + if err := service.InstallExtension(slug); err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } @@ -154,12 +119,13 @@ func (r *PHPController) InstallExtension(ctx http.Context) http.Response { } func (r *PHPController) UninstallExtension(ctx http.Context) http.Response { + service := services.NewPHPImpl(uint(ctx.Request().RouteInt("version"))) slug := ctx.Request().Input("slug") if len(slug) == 0 { return controllers.Error(ctx, http.StatusUnprocessableEntity, "参数错误") } - if err := r.service.UninstallExtension(slug); err != nil { + if err := service.UninstallExtension(slug); err != nil { return controllers.Error(ctx, http.StatusInternalServerError, err.Error()) } diff --git a/internal/services/php.go b/internal/services/php.go index 06c92f7a4..b8e9993e4 100644 --- a/internal/services/php.go +++ b/internal/services/php.go @@ -27,26 +27,10 @@ func NewPHPImpl(version uint) *PHPImpl { } } -func (r *PHPImpl) Status() (bool, error) { - return tools.ServiceStatus("php-fpm-" + r.version) -} - func (r *PHPImpl) Reload() error { return tools.ServiceReload("php-fpm-" + r.version) } -func (r *PHPImpl) Start() error { - return tools.ServiceStart("php-fpm-" + r.version) -} - -func (r *PHPImpl) Stop() error { - return tools.ServiceStop("php-fpm-" + r.version) -} - -func (r *PHPImpl) Restart() error { - return tools.ServiceRestart("php-fpm-" + r.version) -} - func (r *PHPImpl) GetConfig() (string, error) { return tools.Read("/www/server/php/" + r.version + "/etc/php.ini") } @@ -75,7 +59,7 @@ func (r *PHPImpl) Load() ([]types.NV, error) { client := resty.New().SetTimeout(10 * time.Second) resp, err := client.R().Get("http://127.0.0.1/phpfpm_status/" + r.version) if err != nil || !resp.IsSuccess() { - return nil, errors.New("获取 PHP-" + r.version + " 运行状态失败") + return []types.NV{}, nil } raw := resp.String() diff --git a/routes/plugin.go b/routes/plugin.go index a5b20506a..25c1ce5fb 100644 --- a/routes/plugin.go +++ b/routes/plugin.go @@ -98,105 +98,20 @@ func Plugin() { route.Delete("users", postgresql16Controller.DeleteUser) route.Post("users/password", postgresql16Controller.SetUserPassword) }) - r.Prefix("php74").Group(func(route route.Router) { - php74Controller := plugins.NewPHPController(74) - route.Get("status", php74Controller.Status) - route.Post("reload", php74Controller.Reload) - route.Post("start", php74Controller.Start) - route.Post("stop", php74Controller.Stop) - route.Post("restart", php74Controller.Restart) - route.Get("load", php74Controller.Load) - route.Get("config", php74Controller.GetConfig) - route.Post("config", php74Controller.SaveConfig) - route.Get("fpmConfig", php74Controller.GetFPMConfig) - route.Post("fpmConfig", php74Controller.SaveFPMConfig) - route.Get("errorLog", php74Controller.ErrorLog) - route.Get("slowLog", php74Controller.SlowLog) - route.Post("clearErrorLog", php74Controller.ClearErrorLog) - route.Post("clearSlowLog", php74Controller.ClearSlowLog) - route.Get("extensions", php74Controller.GetExtensionList) - route.Post("extensions", php74Controller.InstallExtension) - route.Delete("extensions", php74Controller.UninstallExtension) - }) - r.Prefix("php80").Group(func(route route.Router) { - php80Controller := plugins.NewPHPController(80) - route.Get("status", php80Controller.Status) - route.Post("reload", php80Controller.Reload) - route.Post("start", php80Controller.Start) - route.Post("stop", php80Controller.Stop) - route.Post("restart", php80Controller.Restart) - route.Get("load", php80Controller.Load) - route.Get("config", php80Controller.GetConfig) - route.Post("config", php80Controller.SaveConfig) - route.Get("fpmConfig", php80Controller.GetFPMConfig) - route.Post("fpmConfig", php80Controller.SaveFPMConfig) - route.Get("errorLog", php80Controller.ErrorLog) - route.Get("slowLog", php80Controller.SlowLog) - route.Post("clearErrorLog", php80Controller.ClearErrorLog) - route.Post("clearSlowLog", php80Controller.ClearSlowLog) - route.Get("extensions", php80Controller.GetExtensionList) - route.Post("extensions", php80Controller.InstallExtension) - route.Delete("extensions", php80Controller.UninstallExtension) - }) - r.Prefix("php81").Group(func(route route.Router) { - php81Controller := plugins.NewPHPController(81) - route.Get("status", php81Controller.Status) - route.Post("reload", php81Controller.Reload) - route.Post("start", php81Controller.Start) - route.Post("stop", php81Controller.Stop) - route.Post("restart", php81Controller.Restart) - route.Get("load", php81Controller.Load) - route.Get("config", php81Controller.GetConfig) - route.Post("config", php81Controller.SaveConfig) - route.Get("fpmConfig", php81Controller.GetFPMConfig) - route.Post("fpmConfig", php81Controller.SaveFPMConfig) - route.Get("errorLog", php81Controller.ErrorLog) - route.Get("slowLog", php81Controller.SlowLog) - route.Post("clearErrorLog", php81Controller.ClearErrorLog) - route.Post("clearSlowLog", php81Controller.ClearSlowLog) - route.Get("extensions", php81Controller.GetExtensionList) - route.Post("extensions", php81Controller.InstallExtension) - route.Delete("extensions", php81Controller.UninstallExtension) - }) - r.Prefix("php82").Group(func(route route.Router) { - php82Controller := plugins.NewPHPController(82) - route.Get("status", php82Controller.Status) - route.Post("reload", php82Controller.Reload) - route.Post("start", php82Controller.Start) - route.Post("stop", php82Controller.Stop) - route.Post("restart", php82Controller.Restart) - route.Get("load", php82Controller.Load) - route.Get("config", php82Controller.GetConfig) - route.Post("config", php82Controller.SaveConfig) - route.Get("fpmConfig", php82Controller.GetFPMConfig) - route.Post("fpmConfig", php82Controller.SaveFPMConfig) - route.Get("errorLog", php82Controller.ErrorLog) - route.Get("slowLog", php82Controller.SlowLog) - route.Post("clearErrorLog", php82Controller.ClearErrorLog) - route.Post("clearSlowLog", php82Controller.ClearSlowLog) - route.Get("extensions", php82Controller.GetExtensionList) - route.Post("extensions", php82Controller.InstallExtension) - route.Delete("extensions", php82Controller.UninstallExtension) - }) - r.Prefix("php83").Group(func(route route.Router) { - php83Controller := plugins.NewPHPController(83) - route.Get("status", php83Controller.Status) - route.Post("reload", php83Controller.Reload) - route.Post("start", php83Controller.Start) - route.Post("stop", php83Controller.Stop) - route.Post("restart", php83Controller.Restart) - route.Get("load", php83Controller.Load) - route.Get("config", php83Controller.GetConfig) - route.Post("config", php83Controller.SaveConfig) - route.Get("fpmConfig", php83Controller.GetFPMConfig) - route.Post("fpmConfig", php83Controller.SaveFPMConfig) - route.Get("errorLog", php83Controller.ErrorLog) - route.Get("slowLog", php83Controller.SlowLog) - route.Post("clearErrorLog", php83Controller.ClearErrorLog) - route.Post("clearSlowLog", php83Controller.ClearSlowLog) - route.Get("extensions", php83Controller.GetExtensionList) - route.Post("extensions", php83Controller.InstallExtension) - route.Delete("extensions", php83Controller.UninstallExtension) + r.Prefix("php").Group(func(route route.Router) { + phpController := plugins.NewPHPController() + route.Get("{version}/load", phpController.Load) + route.Get("{version}/config", phpController.GetConfig) + route.Post("{version}/config", phpController.SaveConfig) + route.Get("{version}/fpmConfig", phpController.GetFPMConfig) + route.Post("{version}/fpmConfig", phpController.SaveFPMConfig) + route.Get("{version}/errorLog", phpController.ErrorLog) + route.Get("{version}/slowLog", phpController.SlowLog) + route.Post("{version}/clearErrorLog", phpController.ClearErrorLog) + route.Post("{version}/clearSlowLog", phpController.ClearSlowLog) + route.Get("{version}/extensions", phpController.GetExtensionList) + route.Post("{version}/extensions", phpController.InstallExtension) + route.Delete("{version}/extensions", phpController.UninstallExtension) }) r.Prefix("phpmyadmin").Group(func(route route.Router) { phpMyAdminController := plugins.NewPhpMyAdminController()