mirror of
https://github.com/acepanel/panel.git
synced 2026-02-05 02:07:18 +08:00
feat: 重构php插件
This commit is contained in:
@@ -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
|
||||
}
|
||||
type PHPController struct{}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
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())
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
113
routes/plugin.go
113
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()
|
||||
|
||||
Reference in New Issue
Block a user