From d4fec36d2164ef79e554837f0b2510097fd06031 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 25 Nov 2024 21:33:36 +0800 Subject: [PATCH] up --- .scripts/{replace => replace_md_link}/go.mod | 2 +- .scripts/{replace => replace_md_link}/go.sum | 0 .scripts/replace_md_link/main.go | 41 +++++++ .scripts/replace_md_name/go.mod | 29 +++++ .scripts/replace_md_name/go.sum | 58 ++++++++++ .scripts/{replace => replace_md_name}/main.go | 5 +- ...35\346\254\241\350\247\201\351\235\242.md" | 2 +- ...50\345\206\214\346\216\245\345\217\243.md" | 2 +- .../Session/Session-Redis-KeyValue.md" | 2 +- ...45\345\217\243\345\274\200\345\217\221.md" | 2 +- .../Session/Session.md" | 8 +- ...06\351\241\265\347\256\241\347\220\206.md" | 2 +- ...00\345\247\213\344\275\277\347\224\250.md" | 8 +- ...02\345\270\270\345\244\204\347\220\206.md" | 4 +- ...\243\346\226\207\346\241\243-OpenAPIv3.md" | 4 +- ...45\345\217\243\346\226\207\346\241\243.md" | 4 +- ...60\346\215\256\350\277\224\345\233\236.md" | 2 +- ...15\347\275\256\346\226\207\344\273\266.md" | 2 +- ...15\347\275\256\346\226\271\346\263\225.md" | 2 +- ...15\346\235\202\345\217\202\346\225\260.md" | 6 +- ...71\350\261\241\345\244\204\347\220\206.md" | 4 +- ...67\346\261\202\346\240\241\351\252\214.md" | 6 +- ...67\346\261\202\350\276\223\345\205\245.md" | 2 +- ...72\346\234\254\344\273\213\347\273\215.md" | 2 +- ...70\350\247\201\351\227\256\351\242\230.md" | 2 +- ...72\346\234\254\347\244\272\344\276\213.md" | 2 +- ...02\344\275\225\344\275\277\347\224\250.md" | 2 +- ...57\347\224\261\346\263\250\345\206\214.md" | 2 +- ...57\347\224\261\350\247\204\345\210\231.md" | 2 +- ...50\345\237\237\345\244\204\347\220\206.md" | 2 +- ...13\344\273\266\345\233\236\350\260\203.md" | 6 +- ...15\345\220\257\347\211\271\346\200\247.md" | 2 +- ...45\345\277\227\347\256\241\347\220\206.md" | 6 +- ...\345\215\207\347\272\247\345\210\260v2.md" | 2 +- ...50\247\201\351\227\256\351\242\230-FAQ.md" | 24 ++-- ...\217\211\347\274\226\350\257\221-build.md" | 4 +- ...47\240\201\347\224\237\346\210\220-gen.md" | 2 +- ...346\215\256\350\241\250PB-gen pbentity.md" | 2 +- ...15\256\350\247\204\350\214\203-gen dao.md" | 6 +- ...\276\347\273\264\346\212\244-gen enums.md" | 4 +- ...00\345\217\221\345\267\245\345\205\267.md" | 4 +- ...6\272\220\346\211\223\345\214\205-pack.md" | 4 +- ...7\233\256\345\210\233\345\273\272-init.md" | 6 +- ...45\347\250\213\347\256\241\347\220\206.md" | 4 +- ...41\347\253\257\351\205\215\347\275\256.md" | 4 +- ...57\345\242\203\345\207\206\345\244\207.md" | 2 +- ...13\346\236\266\346\250\241\345\235\227.md" | 2 +- ...04\344\273\266\346\214\207\346\240\207.md" | 4 +- ...60\346\215\256\346\223\215\344\275\234.md" | 4 +- ...15\347\275\256\347\256\241\347\220\206.md" | 4 +- ...75\344\273\244\347\256\241\347\220\206.md" | 2 +- ...13\346\226\207\345\217\230\351\207\217.md" | 4 +- ...70\350\247\204\346\223\215\344\275\234.md" | 4 +- ...55\345\214\205\346\223\215\344\275\234.md" | 2 +- ...70\350\247\201\351\227\256\351\242\230.md" | 2 +- ...15\347\275\256\346\226\207\344\273\266.md" | 2 +- ...70\350\247\201\351\227\256\351\242\230.md" | 2 +- ...36\350\260\203\345\244\204\347\220\206.md" | 2 +- ...45\345\217\243\345\274\200\345\217\221.md" | 2 +- ...2sql.ErrNoRows\345\210\244\346\226\255.md" | 2 +- ...41\345\236\213\347\224\237\346\210\220.md" | 2 +- ...72\347\251\272\345\210\244\346\226\255.md" | 2 +- ...23\346\236\234\347\261\273\345\236\213.md" | 4 +- ...13\345\212\241\345\244\204\347\220\206.md" | 2 +- ...31\345\205\245\344\277\235\345\255\230.md" | 4 +- ...71\350\261\241\350\276\223\345\205\245.md" | 2 +- ...0\257\242-Join\346\237\245\350\257\242.md" | 2 +- ...66\351\227\264\347\273\264\346\212\244.md" | 2 +- ...347\273\264\346\212\244-SoftTimeOption.md" | 4 +- ...72\346\234\254\344\275\277\347\224\250.md" | 2 +- ...03\345\260\224\345\255\227\346\256\265.md" | 2 +- ...64\345\236\213\345\255\227\346\256\265.md" | 4 +- ...64\346\226\260\345\210\240\351\231\244.md" | 4 +- ...45\350\257\242\347\274\223\345\255\230.md" | 2 +- ...0\201\224-With\347\211\271\346\200\247.md" | 4 +- ...45\345\277\227\350\276\223\345\207\272.md" | 6 +- ...73\345\236\213\350\275\254\346\215\242.md" | 2 +- ...73\345\236\213\350\275\254\346\215\242.md" | 2 +- ...14\351\241\272\345\272\217\346\200\247.md" | 2 +- ...72\346\234\254\344\275\277\347\224\250.md" | 2 +- ...70\350\247\201\351\227\256\351\242\230.md" | 2 +- ...41\351\252\214\345\257\271\350\261\241.md" | 2 +- ...41\351\252\214\350\247\204\345\210\231.md" | 4 +- ...32\344\271\211\351\224\231\350\257\257.md" | 2 +- ...77\227\347\273\204\344\273\266-Context.md" | 4 +- ...273\266-Writer\346\216\245\345\217\243.md" | 2 +- ...07\344\273\266\347\233\256\345\275\225.md" | 2 +- ...15\347\275\256\347\256\241\347\220\206.md" | 6 +- ...45\345\277\227\347\273\204\344\273\266.md" | 2 +- ...05\347\275\256\345\207\275\346\225\260.md" | 2 +- ...41\346\235\277\345\217\230\351\207\217.md" | 2 +- ...41\346\235\277\351\205\215\347\275\256.md" | 2 +- ...15\242-Structs\350\275\254\346\215\242.md" | 2 +- ...73\345\236\213\350\275\254\346\215\242.md" | 2 +- ...45\345\217\243\350\256\276\350\256\241.md" | 4 +- ...45\345\205\267\346\211\223\345\214\205.md" | 2 +- ...00\344\275\263\345\256\236\350\267\265.md" | 2 +- ...04\346\272\220\347\256\241\347\220\206.md" | 2 +- ...70\347\224\250\346\226\271\346\263\225.md" | 4 +- ...07\344\273\266\351\205\215\347\275\256.md" | 2 +- ...76\345\200\274\347\256\241\347\220\206.md" | 2 +- ...06\345\261\202\350\256\276\350\256\241.md" | 2 +- ...56\345\275\225\350\256\276\350\256\241.md" | 2 +- ...41\347\220\206\346\250\241\345\274\217.md" | 14 +-- ...32\345\212\241\346\250\241\345\236\213.md" | 2 +- ...06\346\236\266\350\256\276\350\256\241.md" | 2 +- ...\233\275\351\231\205\345\214\226-gi18n.md" | 2 +- ...\241\265\347\256\241\347\220\206-gpage.md" | 2 +- ...4\273\244\347\256\241\347\220\206-gcmd.md" | 2 +- ...\227\266\344\273\273\345\212\241-gcron.md" | 2 +- ...73\345\212\241-gcron\344\270\216gtimer.md" | 6 +- ...45\345\277\227\347\256\241\347\220\206.md" | 2 +- ...256\232\346\227\266\345\231\250-gtimer.md" | 4 +- ...\266\347\233\221\346\216\247-gfsnotify.md" | 2 +- ...5\277\227\347\256\241\347\220\206-glog.md" | 2 +- ...71\346\263\225\344\273\213\347\273\215.md" | 2 +- ...255\230\347\256\241\347\220\206-gcache.md" | 2 +- ...6\272\220\347\256\241\347\220\206-gres.md" | 2 +- ...\250\213\347\256\241\347\220\206-gproc.md" | 2 +- ...7\275\256\347\256\241\347\220\206-gcfg.md" | 2 +- ...\240\201\346\216\245\345\217\243-gcode.md" | 2 +- ...75\344\270\216\344\275\277\347\224\250.md" | 2 +- .../What's Next.md" | 4 +- ...72\346\234\254\344\273\213\347\273\215.md" | 4 +- ... \347\224\237\346\210\220dao_do_entity.md" | 4 +- ...45\345\217\243\345\256\232\344\271\211.md" | 4 +- ...\220controller\344\273\243\347\240\201.md" | 2 +- ...56\344\270\216\350\267\257\347\224\261.md" | 4 +- ...50\344\270\216\346\265\213\350\257\225.md" | 2 +- ...71\347\233\256\345\220\257\345\212\250.md" | 8 +- .../current/release/v2.0 2022-03-09.md | 104 +++++++++--------- .../current/release/v2.1 2022-06-22.md | 36 +++--- .../current/release/v2.2 2022-10-11.md | 18 +-- .../current/release/v2.3 2023-01-18.md | 14 +-- .../current/release/v2.4 2023-04-24.md | 14 +-- .../current/release/v2.5 2023-07-17.md | 14 +-- .../current/release/v2.6 2023-12-19.md | 22 ++-- .../current/release/v2.7 2024-04-09.md | 24 ++-- .../current/release/v2.8 2024-11-18.md | 22 ++-- .../v1.15 2020-12-31.md" | 28 ++--- .../v1.16 2021-06-01.md" | 86 +++++++-------- 141 files changed, 523 insertions(+), 392 deletions(-) rename .scripts/{replace => replace_md_link}/go.mod (97%) rename .scripts/{replace => replace_md_link}/go.sum (100%) create mode 100644 .scripts/replace_md_link/main.go create mode 100644 .scripts/replace_md_name/go.mod create mode 100644 .scripts/replace_md_name/go.sum rename .scripts/{replace => replace_md_name}/main.go (90%) diff --git a/.scripts/replace/go.mod b/.scripts/replace_md_link/go.mod similarity index 97% rename from .scripts/replace/go.mod rename to .scripts/replace_md_link/go.mod index bf2c94dee14..64a568bdc3e 100644 --- a/.scripts/replace/go.mod +++ b/.scripts/replace_md_link/go.mod @@ -1,4 +1,4 @@ -module replace +module replace_md_link go 1.23.1 diff --git a/.scripts/replace/go.sum b/.scripts/replace_md_link/go.sum similarity index 100% rename from .scripts/replace/go.sum rename to .scripts/replace_md_link/go.sum diff --git a/.scripts/replace_md_link/main.go b/.scripts/replace_md_link/main.go new file mode 100644 index 00000000000..d4bbd9c7269 --- /dev/null +++ b/.scripts/replace_md_link/main.go @@ -0,0 +1,41 @@ +package main + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" +) + +const ( + path = `/Users/john/Workspace/github/gogf/gf-site/i18n/en/docusaurus-plugin-content-docs` +) + +func main() { + files, err := gfile.ScanDirFile(path, "*.md", true) + if err != nil { + panic(err) + } + for _, file := range files { + content := gfile.GetContents(file) + newContent, _ := gregex.ReplaceStringFuncMatch( + `\[([^\]]+?)\]\(([^\)]+?\.md)\)`, + content, + func(match []string) string { + var ( + name = match[1] + link = match[2] + ) + if gstr.HasPrefix(link, "http") { + return match[0] + } + if gstr.Contains(link, " ") { + link = gstr.Replace(link, " ", "%20") + } + return fmt.Sprintf(`[%s](%s)`, name, link) + }, + ) + _ = gfile.PutContents(file, newContent) + } +} diff --git a/.scripts/replace_md_name/go.mod b/.scripts/replace_md_name/go.mod new file mode 100644 index 00000000000..00aba15d3be --- /dev/null +++ b/.scripts/replace_md_name/go.mod @@ -0,0 +1,29 @@ +module replace_md_name + +go 1.23.1 + +require github.com/gogf/gf/v2 v2.7.4 + +require ( + github.com/BurntSushi/toml v1.3.2 // indirect + github.com/clbanning/mxj/v2 v2.7.0 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/fatih/color v1.16.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/gorilla/websocket v1.5.1 // indirect + github.com/grokify/html-strip-tags-go v0.1.0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect + go.opentelemetry.io/otel v1.14.0 // indirect + go.opentelemetry.io/otel/sdk v1.14.0 // indirect + go.opentelemetry.io/otel/trace v1.14.0 // indirect + golang.org/x/net v0.24.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/.scripts/replace_md_name/go.sum b/.scripts/replace_md_name/go.sum new file mode 100644 index 00000000000..19b620ef5d8 --- /dev/null +++ b/.scripts/replace_md_name/go.sum @@ -0,0 +1,58 @@ +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= +github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/gogf/gf/v2 v2.7.4 h1:cGHUBO5Jr8ty21GN5EO+S2rFYhprdcqnwS7PnWL7+t4= +github.com/gogf/gf/v2 v2.7.4/go.mod h1:EBXneAg/wes86rfeh68XC0a2JBNQylmT7Sp6/8Axk88= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4= +github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= +go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/.scripts/replace/main.go b/.scripts/replace_md_name/main.go similarity index 90% rename from .scripts/replace/main.go rename to .scripts/replace_md_name/main.go index 63742b50223..e31ae449e09 100644 --- a/.scripts/replace/main.go +++ b/.scripts/replace_md_name/main.go @@ -50,10 +50,13 @@ func main() { } // get title from md fileContent := gstr.Trim(gfile.GetContents(realPath)) - tempMatch, _ := gregex.MatchString(`title: '(\w+?)'`, fileContent) + tempMatch, _ := gregex.MatchString(`title: '(.+?)'`, fileContent) if len(tempMatch) > 1 { name = tempMatch[1] } + if gstr.Contains(link, " ") { + link = gstr.Replace(link, " ", "%20") + } return fmt.Sprintf(`[%s](%s)`, name, link) }, ) diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/community/\347\244\276\345\214\272\344\272\244\346\265\201/\346\212\200\346\234\257\345\210\206\344\272\253\344\272\244\346\265\201/0-2021-03-12 \345\210\235\346\254\241\350\247\201\351\235\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/community/\347\244\276\345\214\272\344\272\244\346\265\201/\346\212\200\346\234\257\345\210\206\344\272\253\344\272\244\346\265\201/0-2021-03-12 \345\210\235\346\254\241\350\247\201\351\235\242.md" index bdf78ec998c..7ca93e82f53 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/community/\347\244\276\345\214\272\344\272\244\346\265\201/\346\212\200\346\234\257\345\210\206\344\272\253\344\272\244\346\265\201/0-2021-03-12 \345\210\235\346\254\241\350\247\201\351\235\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/community/\347\244\276\345\214\272\344\272\244\346\265\201/\346\212\200\346\234\257\345\210\206\344\272\253\344\272\244\346\265\201/0-2021-03-12 \345\210\235\346\254\241\350\247\201\351\235\242.md" @@ -24,7 +24,7 @@ This session will mainly share some design concepts of the framework, without di 3. [Framework Design](../../../docs/框架设计/框架设计.md) - [Modular Design](../../../docs/框架设计/模块化设计.md) - [Unified Framework Design](../../../docs/框架设计/统一框架设计.md) - - [Code Layer Design](../../../docs/框架设计/工程开发设计/代码分层设计.md) + - [Code Layering](../../../docs/框架设计/工程开发设计/代码分层设计.md) 4. Other Miscellaneous Items 5. Community-Driven Development Plans 6. Interaction Session diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/course/starbook/\347\254\254\344\272\214\347\253\240-\347\224\250\346\210\267\346\263\250\345\206\214/2.3.\346\263\250\345\206\214\346\216\245\345\217\243.md" "b/i18n/en/docusaurus-plugin-content-docs/current/course/starbook/\347\254\254\344\272\214\347\253\240-\347\224\250\346\210\267\346\263\250\345\206\214/2.3.\346\263\250\345\206\214\346\216\245\345\217\243.md" index 593b3586af9..45cf4ca009a 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/course/starbook/\347\254\254\344\272\214\347\253\240-\347\224\250\346\210\267\346\263\250\345\206\214/2.3.\346\263\250\345\206\214\346\216\245\345\217\243.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/course/starbook/\347\254\254\344\272\214\347\253\240-\347\224\250\346\210\267\346\263\250\345\206\214/2.3.\346\263\250\345\206\214\346\216\245\345\217\243.md" @@ -151,7 +151,7 @@ build running pid: 8648 ----------|--------|--------------------|---------------------------------------------------------|---------------------------------- ``` -The result of running prints out three interface addresses. `/swagger` and `/api.json` are interface document addresses generated by the framework, which we will explain in detail in [2.5 - Interface Documentation](./2.5.接口文档.md). The other address `/v1/users/register` is the user registration interface we developed. Send a `POST` request to test it. +The result of running prints out three interface addresses. `/swagger` and `/api.json` are interface document addresses generated by the framework, which we will explain in detail in [2.5 API Documentation](./2.5.接口文档.md). The other address `/v1/users/register` is the user registration interface we developed. Send a `POST` request to test it. ```bash $ curl -X POST http://127.0.0.1:8000/v1/users/register -H "Content-Type: application/json" -d "{\"username\":\"oldme\", \"password\":\"123456\", \"email\":\"tyyn1022@gmail.com\"}" diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Redis-KeyValue.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Redis-KeyValue.md" index dfb40756b21..f6e088bfc1d 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Redis-KeyValue.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Redis-KeyValue.md" @@ -13,7 +13,7 @@ The file storage method works well in single-node scenarios, but when it comes t The `gsession` Redis storage uses the `StorageRedis` object, similar to file storage. To improve execution efficiency, it adopts a `memory + Redis` approach. The only difference from file storage is that if `Session` operations are needed during each request, the latest `Session` data will be pulled from `Redis` (file storage only reads a file once when the `Session` does not exist). At the end of each request, the entire `Session` data is serialized using `JSON` and updated to the `Redis` service using the `KeyValue` method. :::tip -For business scenarios where the `Session` data of each user is not large (taking the user dimension as an example), this storage method is recommended. If the `Session` data for a single user is large (e.g., `>10MB`), you can refer to the `HashTable` storage method: [Session-Redis-HashTable](Session-Redis-HashTable.md) +For business scenarios where the `Session` data of each user is not large (taking the user dimension as an example), this storage method is recommended. If the `Session` data for a single user is large (e.g., `>10MB`), you can refer to the `HashTable` storage method: [Session - Redis-HashTable](Session-Redis-HashTable.md) ::: ## Usage Example diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Storage\346\216\245\345\217\243\345\274\200\345\217\221.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Storage\346\216\245\345\217\243\345\274\200\345\217\221.md" index 3ba9564e9d3..aadb1458f24 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Storage\346\216\245\345\217\243\345\274\200\345\217\221.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session-Storage\346\216\245\345\217\243\345\274\200\345\217\221.md" @@ -69,4 +69,4 @@ The timing of each method's invocation is explained in detail within the comment ## Considerations - In the `Storage` interface, not all interface methods need to be implemented. Developers only need to implement some interfaces according to the specific invocation timing required by their business needs. -- To enhance the execution performance of `Session`, the interface uses the `gmap.StrAnyMap` container type. During development, you can refer to this section: [Dictionary Type - gmap](../../组件列表/数据结构/字典类型-gmap/字典类型-gmap.md) \ No newline at end of file +- To enhance the execution performance of `Session`, the interface uses the `gmap.StrAnyMap` container type. During development, you can refer to this section: [Map](../../组件列表/数据结构/字典类型-gmap/字典类型-gmap.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session.md" index 5791981c8ad..d731884150e 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/Session/Session.md" @@ -33,10 +33,10 @@ The management functionality of `Session` is implemented by the independent `gse | Storage | Distributed Support | Persistence Support | Memory Usage | Execution Efficiency | Brief Introduction | | --- | --- | --- | --- | --- | --- | -| `StorageFile` | No | Yes | Medium | Medium | Based on file storage (default). A more efficient persistent storage method under single-node deployment: [Session-File](Session-File.md) | -| `StorageMemory` | No | No | High | High | Based on pure memory storage. Single-node deployment, highest performance, but cannot be persisted, and is lost on restart: [Session-Memory](Session-Memory.md) | -| `StorageRedis` | Yes | Yes | Medium | Medium | Based on `Redis` storage (`Key-Value`). Remote `Redis` node stores `Session` data, supporting multi-node deployment: [Session-Redis-KeyValue](Session-Redis-KeyValue.md) | -| `StorageRedisHashTable` | Yes | Yes | Low | Low | Based on `Redis` storage (`HashTable`). Remote `Redis` node stores `Session` data, supporting multi-node deployment: [Session-Redis-HashTable](Session-Redis-HashTable.md) | +| `StorageFile` | No | Yes | Medium | Medium | Based on file storage (default). A more efficient persistent storage method under single-node deployment: [Session - File](Session-File.md) | +| `StorageMemory` | No | No | High | High | Based on pure memory storage. Single-node deployment, highest performance, but cannot be persisted, and is lost on restart: [Session - Memory](Session-Memory.md) | +| `StorageRedis` | Yes | Yes | Medium | Medium | Based on `Redis` storage (`Key-Value`). Remote `Redis` node stores `Session` data, supporting multi-node deployment: [Session - Redis-KeyValue](Session-Redis-KeyValue.md) | +| `StorageRedisHashTable` | Yes | Yes | Low | Low | Based on `Redis` storage (`HashTable`). Remote `Redis` node stores `Session` data, supporting multi-node deployment: [Session - Redis-HashTable](Session-Redis-HashTable.md) | Each method has its advantages and disadvantages. For detailed introductions, please refer to the corresponding sections. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\210\206\351\241\265\347\256\241\347\220\206/\345\210\206\351\241\265\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\210\206\351\241\265\347\256\241\347\220\206/\345\210\206\351\241\265\347\256\241\347\220\206.md" index 69e2f3c7039..279bdc36f01 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\210\206\351\241\265\347\256\241\347\220\206/\345\210\206\351\241\265\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\210\206\351\241\265\347\256\241\347\220\206/\345\210\206\351\241\265\347\256\241\347\220\206.md" @@ -79,7 +79,7 @@ function DoAjax(url) { Please refer to subsequent chapters for specific usage examples. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\200\345\247\213\344\275\277\347\224\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\200\345\247\213\344\275\277\347\224\250.md" index 47f4a755a43..0d3590d1a4f 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\200\345\247\213\344\275\277\347\224\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\200\345\247\213\344\275\277\347\224\250.md" @@ -200,19 +200,19 @@ func main() { } ``` -This is an example of a mixed routing rule, used to display a specific class, subject, student, and corresponding action. After running, we can see the test result by visiting this address: [http://127.0.0.1:8199/class3-math/john/score](http://127.0.0.1:8199/class3-math/john/score). On the page, you can see that the routing rules are parsed one by one, and the business layer can process the corresponding business logic according to the parsed parameters. For specific route registration management, please see the subsequent [Routing Management - Routing Rules](路由管理/路由管理-路由规则.md) chapter. +This is an example of a mixed routing rule, used to display a specific class, subject, student, and corresponding action. After running, we can see the test result by visiting this address: [http://127.0.0.1:8199/class3-math/john/score](http://127.0.0.1:8199/class3-math/john/score). On the page, you can see that the routing rules are parsed one by one, and the business layer can process the corresponding business logic according to the parsed parameters. For specific route registration management, please see the subsequent [Router - Route Patterns](路由管理/路由管理-路由规则.md) chapter. ## Configuration Management -The core components of `GoFrame` implement convenient configuration management features, allowing component functionality configuration through configuration file modifications. In most scenarios, we recommend using configuration files to manage component configurations. For `Server` configurations, see the [Service Configuration](服务配置/服务配置.md) chapter. +The core components of `GoFrame` implement convenient configuration management features, allowing component functionality configuration through configuration file modifications. In most scenarios, we recommend using configuration files to manage component configurations. For `Server` configurations, see the [Configuration](服务配置/服务配置.md) chapter. ## Graceful Restart -`Server` has built-in support for graceful restart features. Detailed introduction can be found in the [Graceful Restart Features](高级特性/平滑重启特性.md) chapter. +`Server` has built-in support for graceful restart features. Detailed introduction can be found in the [Graceful Restart](高级特性/平滑重启特性.md) chapter. ## HTTPS Support -`Server` supports `HTTPS` services and also supports providing `HTTP&HTTPS` services in a single process. Detailed `HTTPS` introduction can be found in the [HTTPS&TLS](高级特性/HTTPS%20&%20TLS.md) chapter. +`Server` supports `HTTPS` services and also supports providing `HTTP&HTTPS` services in a single process. Detailed `HTTPS` introduction can be found in the [HTTPS & TLS](高级特性/HTTPS%20&%20TLS.md) chapter. ## More Features diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\202\345\270\270\345\244\204\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\202\345\270\270\345\244\204\347\220\206.md" index 68c92839dba..bc00d33a5b3 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\202\345\270\270\345\244\204\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\345\274\202\345\270\270\345\244\204\347\220\206.md" @@ -40,7 +40,7 @@ Here, we use a global post-middleware to capture exceptions. When an exception o Please note: - Even if developers capture and log exceptions themselves, the `Server` will still print them to its own error log file. Logs outputted by API methods are business logs (related to the business), while self-managed logs by the `Server` are service logs (similar to `nginx`'s `error.log`). -- Since most low-level errors in the `goframe` framework include stack information of the error, if you are interested in specific stack information (call chain, error file path, source code line number, etc.), you can use `gerror` to retrieve it. For details, please refer to the section [Error Handling - Stack Features](../核心组件/错误处理/错误处理-堆栈特性.md). If the exception includes stack information, it is printed by default to the `Server`'s `error` log file. +- Since most low-level errors in the `goframe` framework include stack information of the error, if you are interested in specific stack information (call chain, error file path, source code line number, etc.), you can use `gerror` to retrieve it. For details, please refer to the section [Error Handling - Stack](../核心组件/错误处理/错误处理-堆栈特性.md). If the exception includes stack information, it is printed by default to the `Server`'s `error` log file. ::: ```go package main @@ -127,7 +127,7 @@ func main() { } ``` -You can see that we use the `%+v` formatted print to retrieve the stack information from the exception error; for the specific principle, please refer to the chapter: [Error Handling - Stack Features](../核心组件/错误处理/错误处理-堆栈特性.md). After execution, we will test it with the `curl` tool: +You can see that we use the `%+v` formatted print to retrieve the stack information from the exception error; for the specific principle, please refer to the chapter: [Error Handling - Stack](../核心组件/错误处理/错误处理-堆栈特性.md). After execution, we will test it with the `curl` tool: ```bash $ curl "http://127.0.0.1:8199/api.v2/user/list" diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243-OpenAPIv3.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243-OpenAPIv3.md" index fe75dab2c86..8bcd15e850a 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243-OpenAPIv3.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243-OpenAPIv3.md" @@ -7,7 +7,7 @@ keywords: [OpenAPIv3, GoFrame, API Documentation, Standard Routing, g.Meta, swag description: "Use the OpenAPIv3 protocol in the GoFrame framework to standardize the generation of API documentation. By embedding the g.Meta metadata structure, you can automatically generate API information with protocol tags. Additionally, the article shows how to customize extension tags and manually improve the API documentation." --- :::tip -The `OpenAPIv3` protocol is mainly used in standardized routing. Before reading the introduction to the API documentation protocol, please familiarize yourself with the standardized routing: [Routing Registration - Standard Routing](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) +The `OpenAPIv3` protocol is mainly used in standardized routing. Before reading the introduction to the API documentation protocol, please familiarize yourself with the standardized routing: [Standard Router](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) ::: ## I. `OpenAPIv3` @@ -17,7 +17,7 @@ For a detailed introduction to the `OpenAPIv3` protocol, please refer to: [https API metadata information can be implemented by embedding the `g.Meta` structure in the input struct and using its attribute tags. -For an introduction to the metadata component, please refer to the section: [Metadata-gmeta](../../组件列表/实用工具/元数据-gmeta.md) +For an introduction to the metadata component, please refer to the section: [Metadata](../../组件列表/实用工具/元数据-gmeta.md) ## III. Common Protocol Tags diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243.md" index 4f3edf82c42..68d4a35dcce 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\216\245\345\217\243\346\226\207\346\241\243/\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -9,11 +9,11 @@ description: "The feature of generating automated API documentation using the Go ## Introduction -The `GoFrame` framework supports fully automated API documentation generation, ensuring that the code and API documentation are maintained synchronously. The automatically generated API documentation adopts the standard `OpenAPIv3` protocol. Before introducing the `OpenAPIv3` protocol, it is recommended that you first read and understand the framework's standardized routing features: [Route Registration - Standard Routing](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md). +The `GoFrame` framework supports fully automated API documentation generation, ensuring that the code and API documentation are maintained synchronously. The automatically generated API documentation adopts the standard `OpenAPIv3` protocol. Before introducing the `OpenAPIv3` protocol, it is recommended that you first read and understand the framework's standardized routing features: [Standard Router](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md). ![](/markdown/487a4457a16a6cf2c86a7d706ce0d9cd.png) -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\225\260\346\215\256\350\277\224\345\233\236/\346\225\260\346\215\256\350\277\224\345\233\236.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\225\260\346\215\256\350\277\224\345\233\236/\346\225\260\346\215\256\350\277\224\345\233\236.md" index 338367817a6..81a5e787937 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\225\260\346\215\256\350\277\224\345\233\236/\346\225\260\346\215\256\350\277\224\345\233\236.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\225\260\346\215\256\350\277\224\345\233\236/\346\225\260\346\215\256\350\277\224\345\233\236.md" @@ -54,7 +54,7 @@ Additionally, it is worth mentioning that `Header` operations can be implemented Response.Header().Set("Content-Type", "text/plain; charset=utf-8") ``` -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" index 0fddb93aa3c..299129d4d53 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" @@ -127,4 +127,4 @@ server: rotateCheckInterval: "24h" ``` -For detailed information on the `logger` item, please refer to the section [Log Component - Configuration Management](../../核心组件/日志组件/日志组件-配置管理.md). \ No newline at end of file +For detailed information on the `logger` item, please refer to the section [Logging - Configuration](../../核心组件/日志组件/日志组件-配置管理.md). \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\271\346\263\225.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\271\346\263\225.md" index 39cd185425a..10975e31c17 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\271\346\263\225.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\351\205\215\347\275\256/\346\234\215\345\212\241\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\271\346\263\225.md" @@ -23,7 +23,7 @@ Brief description: ### `SetConfigWithMap` Method -We can use the `SetConfigWithMap` method to set/modify specific configurations of the `Server` through `Key-Value` pairs, while the remaining configurations can use the default settings. The name of the `Key` is the attribute name in the `ServerConfig` `struct`, and it is case insensitive. Words can also be connected using `-`/`_`/`space` symbols. For details, refer to the [Type Conversion - Struct Conversion](../../核心组件/类型转换/类型转换-Struct转换.md) chapter. +We can use the `SetConfigWithMap` method to set/modify specific configurations of the `Server` through `Key-Value` pairs, while the remaining configurations can use the default settings. The name of the `Key` is the attribute name in the `ServerConfig` `struct`, and it is case insensitive. Words can also be connected using `-`/`_`/`space` symbols. For details, refer to the [Type Conversion - Struct](../../核心组件/类型转换/类型转换-Struct转换.md) chapter. Simple example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\244\215\346\235\202\345\217\202\346\225\260.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\244\215\346\235\202\345\217\202\346\225\260.md" index 72b0ada12d8..6748fd62c72 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\244\215\346\235\202\345\217\202\346\225\260.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\244\215\346\235\202\345\217\202\346\225\260.md" @@ -1,15 +1,15 @@ --- slug: '/docs/web/request-complicated-parameters' -title: 'Request - Parameters' +title: 'Request - Complex Parameters' sidebar_position: 0 hide_title: true -keywords: [GoFrame, GoFrame Framework, Complicated Parameters, Request Input, Query Parameters, Form Parameters, JSON Data, HTTP Server, Array Parameters, Map Parameters] +keywords: [GoFrame, GoFrame Framework, Complex Parameters, Request Input, Query Parameters, Form Parameters, JSON Data, HTTP Server, Array Parameters, Map Parameters] description: "In applications built with the GoFrame framework, complex parameter transmission is achieved through Query or Form parameters. The document details the submission formats and server-side parsing methods for parameters with the same name, array parameters, and Map parameters, along with code examples. It is recommended to manage and maintain complex parameter transmission using JSON data encoding whenever possible." --- :::tip The complex parameters in this chapter are aimed at traditional `Query` or `Form` parameter transmission. As these methods are not elegantly managed and maintained for complex parameters, we recommend using `JSON` data encoding for management and maintenance whenever encountering complex parameter transmission scenarios. ::: -## Complicated Parameters +## Complex Parameters The `ghttp.Request` object supports intelligent parameter type parsing (irrespective of request submission method and type). Below are examples of submitted parameters and the corresponding server-side variable types: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\257\271\350\261\241\345\244\204\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\257\271\350\261\241\345\244\204\347\220\206.md" index ecfdcfdf129..96bdb318ca1 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\257\271\350\261\241\345\244\204\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\345\257\271\350\261\241\345\244\204\347\220\206.md" @@ -40,7 +40,7 @@ nick_name Nick_Name match nick name Nick_Name match ``` -Since object conversion at the underlying layer uses the `gconv` module, it also supports the `c/gconv/json` tags. More detailed rules can be found in the section [Type Conversion - Struct Conversion](../../核心组件/类型转换/类型转换-Struct转换.md). +Since object conversion at the underlying layer uses the `gconv` module, it also supports the `c/gconv/json` tags. More detailed rules can be found in the section [Type Conversion - Struct](../../核心组件/类型转换/类型转换-Struct转换.md). ### Custom Rules @@ -63,7 +63,7 @@ In which we use the `p` tag to specify the parameter name bound to the attribute We can also use the `Parse` method to achieve `struct` conversion. This method is a convenience method that will automatically perform conversion and data validation internally, but if the `struct` does not have a bound validation `tag`, the validation logic will not be executed. :::warning -Starting from `GoFrame v2`, we recommend using a structured approach to define route methods for more convenient management of input and output data structures and instances. For details, please refer to: [Route Registration - Standard Routes](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) +Starting from `GoFrame v2`, we recommend using a structured approach to define route methods for more convenient management of input and output data structures and instances. For details, please refer to: [Standard Router](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) ::: Usage example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\350\257\267\346\261\202\346\240\241\351\252\214.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\350\257\267\346\261\202\346\240\241\351\252\214.md" index 07558e9c699..eca830d7f96 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\350\257\267\346\261\202\346\240\241\351\252\214.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245-\350\257\267\346\261\202\346\240\241\351\252\214.md" @@ -7,9 +7,9 @@ keywords: [GoFrame, Request Validation, GoFrame Framework, gvalid, Struct Valida description: "In the GoFrame framework, request input validation is implemented for struct attributes through the v tag. In the example, we explain how to use the gvalid module for validation, how to set and parse the registered request data structure, and how to handle validation errors. We also demonstrate how to test API responses and error messages using curl. Additionally, we provide usage suggestions for different versions to improve user experience and code usability." --- -The `Request` object offers excellent request validation capabilities by binding the `v` tag to struct attributes. Since the underlying validation functionality is achieved through the `gvalid` module, for more detailed validation rules and introduction, please refer to the [Data Validation - Struct Validation](../../%E6%A0%B8%E5%BF%83%E7%BB%84%E4%BB%B6/%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C/%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C-%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B/%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C-Struct%E6%A0%A1%E9%AA%8C/Struct%E6%A0%A1%E9%AA%8C-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.md) section. +The `Request` object offers excellent request validation capabilities by binding the `v` tag to struct attributes. Since the underlying validation functionality is achieved through the `gvalid` module, for more detailed validation rules and introduction, please refer to the [Struct Validation - Example](../../核心组件/数据校验/数据校验-参数类型/数据校验-Struct校验/Struct校验-基本使用.md) section. :::warning -The way of transforming request parameters to structs in the example code below applies to framework `v1`. From version `v2`, it is recommended to implement automated parameter struct transformation and validation through standard routes: [Route Registration - Standard Routes](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) +The way of transforming request parameters to structs in the example code below applies to framework `v1`. From version `v2`, it is recommended to implement automated parameter struct transformation and validation through standard routes: [Standard Router](../路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) ::: ## Example 1, Basic Usage @@ -135,7 +135,7 @@ func main() { } ``` -As shown, when an error occurs, we can use the `err.(gvalid.Error)` assertion method to determine whether the error is a validation error. If so, the first validation error is returned instead of all. For more detailed error control methods, please refer to the [Data Validation - Validation Results](../../核心组件/数据校验/数据校验-校验结果.md) section. +As shown, when an error occurs, we can use the `err.(gvalid.Error)` assertion method to determine whether the error is a validation error. If so, the first validation error is returned instead of all. For more detailed error control methods, please refer to the [Data Validation - Result](../../核心组件/数据校验/数据校验-校验结果.md) section. :::tip Moreover, we can use `gerror.Current` to obtain the first error message instead of using the assertion judgment. For example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245.md" index 473497f2294..274faeed403 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\257\267\346\261\202\350\276\223\345\205\245/\350\257\267\346\261\202\350\276\223\345\205\245.md" @@ -23,7 +23,7 @@ As you can see, the **parameter retrieval methods** of the `Request` object are | `GetRequest` | Retrieves all parameters submitted by the client, covering parameters based on priority without distinguishing submission methods. | | `Get*Struct` | Binds all request parameters of a specified submission type to a specified `struct` object. Note that the given parameter is a pointer to an object. In most scenarios, the `Parse` method is often used to convert request data into a request object, as detailed in subsequent chapters. | | `GetBody/GetBodyString` | Retrieves the raw data submitted by the client; this data is the raw data written into the `body` by the client, regardless of `HTTP Method`, for instance, when the client submits `JSON/XML` data format, this method can be used to get the original submitted data. | -| `GetJson` | Automatically parses the original request information into a `gjson.Json` object pointer and returns it. The `gjson.Json` object is specifically introduced in the chapter [Universal Encoding-Decoding-gjson](../../组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md). | +| `GetJson` | Automatically parses the original request information into a `gjson.Json` object pointer and returns it. The `gjson.Json` object is specifically introduced in the chapter [General Codec](../../组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md). | | `Exit*` | Used for request flow control exit, as detailed in the subsequent explanations in this chapter. | ## Submission Method diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\237\272\346\234\254\344\273\213\347\273\215.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\237\272\346\234\254\344\273\213\347\273\215.md" index 2ea8c2e0541..112f3818278 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\237\272\346\234\254\344\273\213\347\273\215.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\237\272\346\234\254\344\273\213\347\273\215.md" @@ -200,4 +200,4 @@ In the code above that demonstrates the priority of group routing middleware: None of these interrupt cases will execute the **request processing method**. -Apart from the common method of using return to terminate the subsequent processing flow in the middleware, the framework also provides `Exit` related methods to forcibly interrupt the execution flow at the code execution location. For specific details, refer to the chapter: [Data Return - Exit Control](../../数据返回/数据返回-Exit控制.md) \ No newline at end of file +Apart from the common method of using return to terminate the subsequent processing flow in the middleware, the framework also provides `Exit` related methods to forcibly interrupt the execution flow at the code execution location. For specific details, refer to the chapter: [Response - Exit](../../数据返回/数据返回-Exit控制.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\270\270\350\247\201\351\227\256\351\242\230.md" index 785a1971ded..fd338be5a20 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\270\270\350\247\201\351\227\256\351\242\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250/\344\270\255\351\227\264\344\273\266\346\213\246\346\210\252\345\231\250-\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -9,7 +9,7 @@ description: "Common issues and solutions for modifying request parameters and r ## How to Modify Request Parameters through Middleware -Before learning how to modify request parameters, please first understand some details about request parameter input: [Request Input🔥](../../请求输入/请求输入.md) +Before learning how to modify request parameters, please first understand some details about request parameter input: [Request 🔥](../../请求输入/请求输入.md) ### Custom Parameter Overriding diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\237\272\346\234\254\347\244\272\344\276\213.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\237\272\346\234\254\347\244\272\344\276\213.md" index 3d4d72c9e93..cee1828f024 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\237\272\346\234\254\347\244\272\344\276\213.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\237\272\346\234\254\347\244\272\344\276\213.md" @@ -103,7 +103,7 @@ Let's continue to do an API test on this page: Yes, the API returned a `Json` content with a fixed data format, but you can see the `data` is the return result we need. :::tip -Note: The latest version of the `SwaggerUI` page no longer supports API testing features. If you need this functionality, you can customize `SwaggerUI` (refer to [API Documentation - Custom UI](../../../接口文档/接口文档-自定义UI.md)), or import the API file `api.json` into third-party tools (such as `apifox`) for testing: +Note: The latest version of the `SwaggerUI` page no longer supports API testing features. If you need this functionality, you can customize `SwaggerUI` (refer to [API Document - Custom UI](../../../接口文档/接口文档-自定义UI.md)), or import the API file `api.json` into third-party tools (such as `apifox`) for testing: ::: ![](/markdown/fe95116df6dfa97448b5a9bcacde87ca.png) diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\246\202\344\275\225\344\275\277\347\224\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\246\202\344\275\225\344\275\277\347\224\250.md" index 9d3140243d5..c9c12937a78 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\246\202\344\275\225\344\275\277\347\224\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\346\263\250\345\206\214-\350\247\204\350\214\203\350\267\257\347\224\261/\350\247\204\350\214\203\350\267\257\347\224\261-\345\246\202\344\275\225\344\275\277\347\224\250.md" @@ -76,7 +76,7 @@ When executing via the post-middleware, use the `GetHandlerResponse` method of t ### `OpenAPIv3` Protocol -The API documentation automatically generated by the `Server` component uses the latest `OpenAPIv3` protocol. For more details, please refer to the chapter: [API Documentation](../../../接口文档/接口文档.md) +The API documentation automatically generated by the `Server` component uses the latest `OpenAPIv3` protocol. For more details, please refer to the chapter: [API Document](../../../接口文档/接口文档.md) ### `Request` Object in `Ctx` diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214.md" index e39fe0446d9..790b9d06177 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\346\263\250\345\206\214.md" @@ -17,7 +17,7 @@ API documentation: [https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp](https:// ## Considerations -Starting from version `v2` of the framework, the feature of **standardized routing** has been added, making it more suitable for engineering scenarios in business projects. It is recommended to use standardized routing in complex business projects: [Route Registration - Standardized Routing](路由注册-规范路由/路由注册-规范路由.md) +Starting from version `v2` of the framework, the feature of **standardized routing** has been added, making it more suitable for engineering scenarios in business projects. It is recommended to use standardized routing in complex business projects: [Standard Router](路由注册-规范路由/路由注册-规范路由.md) ## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\350\247\204\345\210\231.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\350\247\204\345\210\231.md" index 7d2f67a6e50..982144dbf39 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\350\247\204\345\210\231.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\350\267\257\347\224\261\347\256\241\347\220\206/\350\267\257\347\224\261\347\256\241\347\220\206-\350\267\257\347\224\261\350\247\204\345\210\231.md" @@ -75,7 +75,7 @@ The `pattern` is a route registration rule string, used in other route registrat In which `HTTPMethod` (`GET/PUT/POST/DELETE/PATCH/HEAD/CONNECT/OPTIONS/TRACE`) and `@Domain` are **optional parameters**. In most scenarios, you can directly provide the route rule parameter, and `BindHandler` will automatically bind **all** request methods. If `HTTPMethod` is specified, the route rule will only be valid for that request method. By specifying `@Domain`, the rule will only be valid under that domain. :::tip -`BindHandler` is the most native method for registering routes. In most scenarios, we usually use **group routing** to manage reasons, which will be introduced in later chapters: [Route Registration - Group Routing](路由管理-路由注册/路由注册-分组路由.md). +`BindHandler` is the most native method for registering routes. In most scenarios, we usually use **group routing** to manage reasons, which will be introduced in later chapters: [Registration - Group Routing](路由管理-路由注册/路由注册-分组路由.md). ::: #### `handler` Parameter diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/CORS\350\267\250\345\237\237\345\244\204\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/CORS\350\267\250\345\237\237\345\244\204\347\220\206.md" index 28414ff977c..db4cca0ac42 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/CORS\350\267\250\345\237\237\345\244\204\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/CORS\350\267\250\345\237\237\345\244\204\347\220\206.md" @@ -7,7 +7,7 @@ keywords: [CORS, Cross-Domain Requests, GoFrame, Middleware, AJAX, Origin, CORSO description: "Handling CORS cross-domain requests using the GoFrame framework, setting cross-domain rules with routing management and middleware, allowing WebSocket cross-domain access. Provides CORS object and its configuration parameters, including default and restricted Origin settings. Additionally, it demonstrates basic usage methods, authorizing cross-domain Origin, and custom detection methods to achieve more flexible cross-domain request management." --- -Allowing cross-domain access to APIs often requires using it in conjunction with [Routing Management - Middleware/Interceptors](../%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86/%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86-%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8/%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%BB%8D.md) to uniformly set which API under certain routing rules can be accessed cross-domain. This method is also used to allow cross-domain access for `WebSocket` requests. +Allowing cross-domain access to APIs often requires using it in conjunction with [Middleware - Intro](../路由管理/路由管理-中间件拦截器/中间件拦截器-基本介绍.md) to uniformly set which API under certain routing rules can be accessed cross-domain. This method is also used to allow cross-domain access for `WebSocket` requests. Related methods: [https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#Response](https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#Response) diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/HOOK\344\272\213\344\273\266\345\233\236\350\260\203.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/HOOK\344\272\213\344\273\266\345\233\236\350\260\203.md" index 411ca0dd429..071c15c75c4 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/HOOK\344\272\213\344\273\266\345\233\236\350\260\203.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/HOOK\344\272\213\344\273\266\345\233\236\350\260\203.md" @@ -47,7 +47,7 @@ Please refer to the example for specific invocation timing. ## Callback Priority -Since event binding is also based on routing rules, its priority is the same as described in the [Route Management - Routing Rules](../路由管理/路由管理-路由规则.md) chapter. +Since event binding is also based on routing rules, its priority is the same as described in the [Router - Route Patterns](../路由管理/路由管理-路由规则.md) chapter. However, the mechanism for event invocation differs from that of route registration invocation. **It allows multiple event callback methods under the same routing rule**, and events under this route will be `invoked in order of priority`. If the routing rules have the same priority, they will be invoked in the order of event registration. @@ -91,7 +91,7 @@ Therefore, if used in a service callback function, `Request.Router` has a value :::tip If you are only providing API API services (including front static file service proxies like `nginx`), which do not involve static file services, you can ignore this section. ::: -Note that event callbacks can also match static file accesses that meet routing rules ([Static Files](静态文件服务.md) feature is disabled by default in the `gf` framework, and we can manually enable it using `WebServer` related configuration. See [Service Configuration](../服务配置/服务配置.md) for details). +Note that event callbacks can also match static file accesses that meet routing rules ([Static File Service](静态文件服务.md) feature is disabled by default in the `gf` framework, and we can manually enable it using `WebServer` related configuration. See [Configuration](../服务配置/服务配置.md) for details). For example, if we register a `/*` global match event callback route, static file accesses like `/static/js/index.js` or `/upload/images/thumb.jpg` will also be matched and processed in the registered event callback function. @@ -285,7 +285,7 @@ priority service ### Example 5: Allowing Cross-Origin Requests -In the chapters [Route Management - Middleware/Interceptor](../%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86/%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86-%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8/%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%BB%8D.md) and [CORS Cross-Origin Handling](CORS跨域处理.md), examples of cross-origin handling have also been introduced. In most cases, we use middleware to achieve cross-origin request handling. +In the chapters [Middleware - Intro](../路由管理/路由管理-中间件拦截器/中间件拦截器-基本介绍.md) and [CORS](CORS跨域处理.md), examples of cross-origin handling have also been introduced. In most cases, we use middleware to achieve cross-origin request handling. Both `HOOK` and middleware can implement cross-origin request handling. Here, we'll use HOOK to achieve simple cross-origin processing. First, let's look at a simple API example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\345\271\263\346\273\221\351\207\215\345\220\257\347\211\271\346\200\247.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\345\271\263\346\273\221\351\207\215\345\220\257\347\211\271\346\200\247.md" index 0369881782b..5228f686c69 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\345\271\263\346\273\221\351\207\215\345\220\257\347\211\271\346\200\247.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\345\271\263\346\273\221\351\207\215\345\220\257\347\211\271\346\200\247.md" @@ -13,7 +13,7 @@ The `GoFrame` framework supports very convenient `web management features`, whic ## Feature Activation -By default, the graceful restart feature is disabled, and it can be turned on via the `graceful` configuration option. Please refer to the `WebServer` configuration management section for details: [Service Configuration-Config File Template](../服务配置/服务配置-配置文件模板.md) +By default, the graceful restart feature is disabled, and it can be turned on via the `graceful` configuration option. Please refer to the `WebServer` configuration management section for details: [Configuration - File Template](../服务配置/服务配置-配置文件模板.md) :::tip Currently, the graceful restart feature requires randomly opening a TCP listening service on a local port for communication and state information exchange between new and old processes. ::: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\346\234\215\345\212\241\346\227\245\345\277\227\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\346\234\215\345\212\241\346\227\245\345\277\227\347\256\241\347\220\206.md" index b413bb9a578..79c9fe54c06 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\346\234\215\345\212\241\346\227\245\345\277\227\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/WEB\346\234\215\345\212\241\345\274\200\345\217\221/\351\253\230\347\272\247\347\211\271\346\200\247/\346\234\215\345\212\241\346\227\245\345\277\227\347\256\241\347\220\206.md" @@ -60,7 +60,7 @@ When the `Server` starts, it will automatically read the `server` node configura ### Configuration Method -Log configuration can also be done through the `Set*` methods of the `Server` object. Refer to the [Service Configuration](../服务配置/服务配置.md) section. +Log configuration can also be done through the `Set*` methods of the `Server` object. Refer to the [Configuration](../服务配置/服务配置.md) section. ## Log Format @@ -107,7 +107,7 @@ Any `panic` errors generated by the `Server` will be automatically captured in t Developers can customize the handling of `Server` request logs in two ways: 1. Custom `*glog.Logger` objects can be passed through log configuration options. -2. Interception can be handled uniformly through middleware, as described in the [Route Management - Middleware/Interceptors](../%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86/%E8%B7%AF%E7%94%B1%E7%AE%A1%E7%90%86-%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8/%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%8B%A6%E6%88%AA%E5%99%A8-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%BB%8D.md) section. +2. Interception can be handled uniformly through middleware, as described in the [Middleware - Intro](../路由管理/路由管理-中间件拦截器/中间件拦截器-基本介绍.md) section. ## `Server` Logs and Business Logs @@ -115,4 +115,4 @@ This is a `FAQ`. It is important to note that the logs mentioned here are the `Server` logs, similar to a series of logs from `Web Server` services like `nginx`, `apache`, `tomcat`, etc. Only the `Server` is allowed to output content, and developers cannot write log content into the `Server` log files, and the log types and formats are completely fixed. -The `GoFrame` framework also provides a log module, implemented by the `glog` log component. Logs printed by developers through the `glog` component are considered business logs, and the program's business code can decide what content to output, where to output it, and what the output format should be like. The commonly used `g.Log()` method is used to output business logs, and this method supports automatically reading the `logger` configuration items from the configuration file. Please refer to the [Log Component](../../核心组件/日志组件/日志组件.md) section for more details. \ No newline at end of file +The `GoFrame` framework also provides a log module, implemented by the `glog` log component. Logs printed by developers through the `glog` component are considered business logs, and the program's business code can decide what content to output, where to output it, and what the output format should be like. The commonly used `g.Log()` method is used to output business logs, and this method supports automatically reading the `logger` configuration items from the configuration file. Please refer to the [Logging](../../核心组件/日志组件/日志组件.md) section for more details. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\246\202\344\275\225\344\273\216v1\346\204\211\345\277\253\345\215\207\347\272\247\345\210\260v2.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\246\202\344\275\225\344\273\216v1\346\204\211\345\277\253\345\215\207\347\272\247\345\210\260v2.md" index 320c0e160cc..7cfeddf04bb 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\246\202\344\275\225\344\273\216v1\346\204\211\345\277\253\345\215\207\347\272\247\345\210\260v2.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\205\266\344\273\226\350\265\204\346\226\231/\345\246\202\344\275\225\344\273\216v1\346\204\211\345\277\253\345\215\207\347\272\247\345\210\260v2.md" @@ -46,7 +46,7 @@ go get -u github.com/gogf/gf/v2@latest ## Project Directory Adjustments -If you are using the officially recommended project directory structure of `GoFrame`, you can manually adjust to the latest directory structure: [Project Directory Design🔥](../框架设计/工程开发设计/工程目录设计.md) +If you are using the officially recommended project directory structure of `GoFrame`, you can manually adjust to the latest directory structure: [Project Structure🔥](../框架设计/工程开发设计/工程目录设计.md) Note that the latest `cli` tool no longer supports the creation of projects with the old directory structure. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\270\270\350\247\201\351\227\256\351\242\230-FAQ.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\270\270\350\247\201\351\227\256\351\242\230-FAQ.md" index 7d9e2674d7c..f98f0185bd6 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\270\270\350\247\201\351\227\256\351\242\230-FAQ.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\270\270\350\247\201\351\227\256\351\242\230-FAQ.md" @@ -19,7 +19,7 @@ Message: Using the `GoFrame` framework is rigorous and safe. If a program throws an exception, it will be captured by the framework by default. If it is not automatically captured, it may be due to the program logic opening new `goroutine`s independently, causing an exception in the new `goroutine`. So there are two options for you to choose from: - It is not recommended to open `goroutine` in a request to handle the request, as this may cause `goroutine` to expand rapidly. When there are too many `goroutine`s, it will also affect the overall scheduling of the program at the `Go` engine level. -- If it is really necessary to start a new `goroutine`, consider using `grpool.AddWithRecover` to create a new `goroutine`, which captures exceptions automatically. For more detailed information, please refer to: [Coroutine Management - grpool](组件列表/系统相关/协程管理-grpool.md). +- If it is really necessary to start a new `goroutine`, consider using `grpool.AddWithRecover` to create a new `goroutine`, which captures exceptions automatically. For more detailed information, please refer to: [Goroutine](组件列表/系统相关/协程管理-grpool.md). ### 2. Shield some fields in `json` output @@ -72,7 +72,7 @@ Solution, upgrade `gf` dependency to `v1.16.9` then `go mod tidy` ## III. Database Issues -Please refer to the section: [Common ORM Questions](核心组件/数据库ORM/ORM常见问题.md) +Please refer to the section: [ORM - FAQ](核心组件/数据库ORM/ORM常见问题.md) ## IV. Usage Issues @@ -81,14 +81,14 @@ Please refer to the section: [Common ORM Questions](核心组件/数据库ORM/OR Different environments refer to: Development environment / Testing environment / Pre-production environment / Production environment, etc. - First of all, in some internet projects, especially under distributed or microservice architecture, a configuration management center is often used, corresponding to different environments, so such a problem will not arise. -- Secondly, if it is under the traditional project management method, the configuration files may be managed together in the code repository, which is not recommended. If you still want to do this, you can let the program automatically select the configuration file or specify the configuration directory through system environment variables or command-line startup parameters, reference [Configuration Management](核心组件/配置管理/配置管理.md) section. For example: `./app --gf.gcfg.file config-prod.toml ` then the default configuration file is modified to `config-prod.toml` file by command-line startup parameters. +- Secondly, if it is under the traditional project management method, the configuration files may be managed together in the code repository, which is not recommended. If you still want to do this, you can let the program automatically select the configuration file or specify the configuration directory through system environment variables or command-line startup parameters, reference [Configuration](核心组件/配置管理/配置管理.md) section. For example: `./app --gf.gcfg.file config-prod.toml ` then the default configuration file is modified to `config-prod.toml` file by command-line startup parameters. We do not recommend distinguishing and reading different environment configuration files through code logic in the program. ### 2. `glog with "ERROR: logging before flag.Parse"` -There is a simple logging library package from `Golang` also called `glog`, check the package name at the top of your file `import`, change `github.com/golang/glog` to the framework's logging component, please refer to: [Logging Component](核心组件/日志组件/日志组件.md) +There is a simple logging library package from `Golang` also called `glog`, check the package name at the top of your file `import`, change `github.com/golang/glog` to the framework's logging component, please refer to: [Logging](核心组件/日志组件/日志组件.md) ### 3. How to use `gcron` and `http` at the same time? @@ -116,19 +116,19 @@ Note, `gcron` must be before `g.Server().Run`. Parameter requests, data validation, `OpenAPIv3`, command management, database ORM. -| Tag (Abbreviation) | Full Name | Description | Related Documents | +| Tag (Abbreviation) | Full Name | Description | Documents | | --- | --- | --- | --- | -| `v` | `valid` | Data validation tag. | [Struct Validation - Basic Usage](核心组件/数据校验/数据校验-参数类型/数据校验-Struct校验/Struct校验-基本使用.md) | -| `p` | `param` | Custom request parameter matching. | [Request Input - Object Handling](WEB服务开发/请求输入/请求输入-对象处理.md) | -| `d` | `default` | Default value binding for request parameters. | [Request Input - Default Value Binding](WEB服务开发/请求输入/请求输入-默认值绑定.md) | -| `orm` | `orm` | ORM tag, used to specify table name, association relationships. | [Data Specification - gen dao](开发工具/代码生成-gen/数据规范-gen%20dao.md)
[Model Associations - Static Associations - With Feature](核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) | +| `v` | `valid` | Data validation tag. | [Struct Validation - Example](核心组件/数据校验/数据校验-参数类型/数据校验-Struct校验/Struct校验-基本使用.md) | +| `p` | `param` | Custom request parameter matching. | [Request - Object Conversion](WEB服务开发/请求输入/请求输入-对象处理.md) | +| `d` | `default` | Default value binding for request parameters. | [Request - Default Value](WEB服务开发/请求输入/请求输入-默认值绑定.md) | +| `orm` | `orm` | ORM tag, used to specify table name, association relationships. | [Dao/Do/Entity Generating](开发工具/代码生成-gen/数据规范-gen%20dao.md)
[Model Association - With](核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) | | `dc` | `description` | Generic struct property description, used by both ORM and interfaces. Belongs to the framework's default property description tag. | | Others: -- Command-line structured management parameters: [Command Management - Structured Parameters](核心组件/命令管理/命令管理-结构化参数.md) +- Command-line structured management parameters: [Command - Structure](核心组件/命令管理/命令管理-结构化参数.md) - Framework commonly used tag labels are centrally managed under the `gtag` component: [https://github.com/gogf/gf/blob/master/util/gtag/gtag.go](https://github.com/gogf/gf/blob/master/util/gtag/gtag.go) -- In the interface documentation section, as the label form is used to generate the `OpenAPI` documentation, there are many tags, please refer to the section: [API Documentation](WEB服务开发/接口文档/接口文档.md) +- In the interface documentation section, as the label form is used to generate the `OpenAPI` documentation, there are many tags, please refer to the section: [API Document](WEB服务开发/接口文档/接口文档.md) ### 5. `HTTP Server` throws `context cancel` error @@ -188,4 +188,4 @@ Build Time: 2021-03-30 15:43:22 ### 3. `gf` command not found on `Win10` -Solution: Install `gf.exe` Refer to: [Development Tools](开发工具/开发工具.md) \ No newline at end of file +Solution: Install `gf.exe` Refer to: [CLI Tool](开发工具/开发工具.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\272\244\345\217\211\347\274\226\350\257\221-build.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\272\244\345\217\211\347\274\226\350\257\221-build.md" index a44c4acb285..92f21ab6a1d 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\272\244\345\217\211\347\274\226\350\257\221-build.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\272\244\345\217\211\347\274\226\350\257\221-build.md" @@ -24,7 +24,7 @@ The `build` command automatically embeds compilation variables, which users can ## Compilation Configuration File -The `build` supports specifying compilation parameters and options from both the command line and configuration file. All components and ecosystem projects of the `GoFrame` framework use the same configuration management component. For the default configuration file and usage, refer to the chapter [Configuration Management](../核心组件/配置管理/配置管理.md). Below is a simple configuration example for reference: +The `build` supports specifying compilation parameters and options from both the command line and configuration file. All components and ecosystem projects of the `GoFrame` framework use the same configuration management component. For the default configuration file and usage, refer to the chapter [Configuration](../核心组件/配置管理/配置管理.md). Below is a simple configuration example for reference: ```yaml gfcli: @@ -58,7 +58,7 @@ The definitions of configuration options are the same as the command line option | `exitWhenError` | `false` | Immediately stop and exit the compilation process (using `os.Exit(1)`) on errors during compilation | | | `dumpEnv` | `false` | Prints the environment variable information of the current compilation environment in the terminal before each compilation | | :::tip -The built-in variables during compilation can be obtained at runtime through the `gbuild` package [Build Information-gbuild](../组件列表/系统相关/构建信息-gbuild.md). +The built-in variables during compilation can be obtained at runtime through the `gbuild` package [Build Information](../组件列表/系统相关/构建信息-gbuild.md). ::: ## Usage Example diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\344\273\243\347\240\201\347\224\237\346\210\220-gen.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\344\273\243\347\240\201\347\224\237\346\210\220-gen.md" index d3682142310..a3b057c4e30 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\344\273\243\347\240\201\347\224\237\346\210\220-gen.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\344\273\243\347\240\201\347\224\237\346\210\220-gen.md" @@ -36,7 +36,7 @@ DESCRIPTION Please use "gf gen dao -h" for specified type help. ``` -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\241\250PB-gen pbentity.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\241\250PB-gen pbentity.md" index 3edd29cd190..741ad8d9d47 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\241\250PB-gen pbentity.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\241\250PB-gen pbentity.md" @@ -83,7 +83,7 @@ Parameter Description: | `gfcli.gen.pbentity` | | Code generation configuration items, which can contain multiple configuration items as an array, supporting multiple databases. Different databases can set different generation rules, such as generating to different locations or files. | - | | `path` | `manifest/protobuf/pbentity` | The directory address for storing the generated `proto` files. | `protobuf/pbentity` | | `package` | Automatically recognize `go.mod` | The `go_package` path in the generated `proto` file, and automatically recognizes the `package` name | - | -| `link` | | Consists of two parts, the first indicating the type of database you are connecting to such as `mysql`, `postgresql`, etc., and the second being the `dsn` information for connecting to the database. Refer to the chapter [ORM Usage Configuration](../../核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) for details. | - | +| `link` | | Consists of two parts, the first indicating the type of database you are connecting to such as `mysql`, `postgresql`, etc., and the second being the `dsn` information for connecting to the database. Refer to the chapter [ORM - Configuration](../../核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) for details. | - | | `prefix` | | The prefix for generating database objects and files, to distinguish between different databases or identical table names in different databases, preventing table name conflicts. | `order_`
`user_` | | `removePrefix` | | Removes the specified prefix from the table names. Multiple prefixes are separated by commas. | `gf_` | | `removeFieldPrefix` | | Removes the specified prefix from field names. Multiple prefixes are separated by commas. | `f_` | diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\247\204\350\214\203-gen dao.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\247\204\350\214\203-gen dao.md" index deff6539d09..3a7e61c4d60 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\247\204\350\214\203-gen dao.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\225\260\346\215\256\350\247\204\350\214\203-gen dao.md" @@ -9,7 +9,7 @@ description: "Usage and parameter configuration of the gen dao command in the Go The `gen dao` command is the most frequently used command in the `CLI` and is crucial for the accurate implementation of the framework’s engineering specifications. This command is used to generate `dao` data access objects, `do` data transformation models, and `entity` instance data model `Go` code files. Due to the numerous parameters and options for this command, it is recommended to manage generation rules using configuration files. :::tip -For an introduction to the framework's project engineering specifications, please see the section [Code Layered Design](../../框架设计/工程开发设计/代码分层设计.md). +For an introduction to the framework's project engineering specifications, please see the section [Code Layering](../../框架设计/工程开发设计/代码分层设计.md). ::: ## Usage @@ -123,7 +123,7 @@ gfcli: | Name | Default Value | Meaning | Example | | --- | --- | --- | --- | | `gfcli.gen.dao` | | `dao` code generation configuration items, can have multiple configuration items to form an array, supporting multiple database generation. Different databases can set different generation rules, for example, they can be generated to different locations or files. | - | -| `link`| | **Required Parameter**. It consists of two parts, the first part represents your connected database type `mysql`, `postgresql`, etc., while the second part is the `dsn` information for the connection. For specific details, please refer to the section [ORM Usage Configuration](../../核心组件/数据库ORM/ORM使用配置/ORM使用配置.md). | - | +| `link`| | **Required Parameter**. It consists of two parts, the first part represents your connected database type `mysql`, `postgresql`, etc., while the second part is the `dsn` information for the connection. For specific details, please refer to the section [ORM - Configuration](../../核心组件/数据库ORM/ORM使用配置/ORM使用配置.md). | - | | `path` | `internal` | The storage **directory** address for generated `dao` and `model` files. | `./app` | | `group` | `default` | Database group name in the database configuration. Only one name can be configured. The group name in the database configuration file is often not modified once determined. | `default`
`order`
`user` | | `prefix` | | Prefixes for the generated database objects and files to distinguish between different databases or the same table names in different databases, to prevent data table name overwriting. | `order_`
`user_` | @@ -192,7 +192,7 @@ Repository address: [https://github.com/gogf/focus-single](https://github.com/go | Path | Description | Detailed Introduction | | --- | --- | --- | | `/internal/dao` | Data Access Object | Accesses the underlying data source through the object-oriented way, based on the `ORM` component. Often used in combination with `entity` and `do`. Files in this directory can be extended and modified by developers. | -| `/internal/model/do` | Data Transformation Model | The data transformation model is used for converting business models to data models, maintained by tools, and should not be modified by users. The tool will overwrite this directory each time code files are generated. For an introduction to `do` files, please refer to:
- [Data and Business Models](../../框架设计/工程开发设计/数据模型与业务模型.md)
- [DAO-Project Pain Points and Improvement](../../框架设计/工程开发设计/DAO封装设计/DAO-工程痛点及改进.md)
- [Achieving Flexible Modification Interface Using Pointer Attributes and do](../../核心组件/数据库ORM/ORM最佳实践/利用指针属性和do对象实现灵活的修改接口.md) | +| `/internal/model/do` | Data Transformation Model | The data transformation model is used for converting business models to data models, maintained by tools, and should not be modified by users. The tool will overwrite this directory each time code files are generated. For an introduction to `do` files, please refer to:
- [Data and Business Models](../../框架设计/工程开发设计/数据模型与业务模型.md)
- [Pain Points and Improvements In Business Project](../../框架设计/工程开发设计/DAO封装设计/DAO-工程痛点及改进.md)
- [Utilizing Pointer Properties and Do Objects for Flexible Modification Interfaces](../../核心组件/数据库ORM/ORM最佳实践/利用指针属性和do对象实现灵活的修改接口.md) | | `/internal/model/entity` | Data Model | The data model is maintained by tools and should not be modified by users. The tool will overwrite this directory each time code files are generated. | 2. Models in the `model` directory are divided into two categories: **Data Models** and **Business Models**. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\236\232\344\270\276\347\273\264\346\212\244-gen enums.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\236\232\344\270\276\347\273\264\346\212\244-gen enums.md" index c5835387794..5bb7be2f14c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\236\232\344\270\276\347\273\264\346\212\244-gen enums.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\344\273\243\347\240\201\347\224\237\346\210\220-gen/\346\236\232\344\270\276\347\273\264\346\212\244-gen enums.md" @@ -90,8 +90,8 @@ import ( ### How to Standardize Enum Values -Please refer to the section: [Golang Enum Management](../../框架设计/Golang枚举值管理.md) +Please refer to the section: [Golang Enums](../../框架设计/Golang枚举值管理.md) ### How to Validate Enum Values -If enum values are standardized and files are generated by command for enum value maintenance, then in parameter validation, the `enums` rule can be used to validate enum value fields. For specific rule introduction, please refer to the section: [Data Validation - Validation Rules](../../核心组件/数据校验/数据校验-校验规则.md) \ No newline at end of file +If enum values are standardized and files are generated by command for enum value maintenance, then in parameter validation, the `enums` rule can be used to validate enum value fields. For specific rule introduction, please refer to the section: [Data Validation - Rules](../../核心组件/数据校验/数据校验-校验规则.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\345\274\200\345\217\221\345\267\245\345\205\267.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\345\274\200\345\217\221\345\267\245\345\205\267.md" index f63658a9902..05740c55622 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\345\274\200\345\217\221\345\267\245\345\205\267.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\345\274\200\345\217\221\345\267\245\345\205\267.md" @@ -20,14 +20,14 @@ Please refer to the repository page for tool installation. Once the tool is succ ## Considerations -1. Some commands require you to have a basic development environment for `Golang` installed. Please refer to the chapter [Environment Installation](../其他资料/准备工作/环境安装.md) for details on environment installation. +1. Some commands require you to have a basic development environment for `Golang` installed. Please refer to the chapter [Installation](../其他资料/准备工作/环境安装.md) for details on environment installation. 2. The latest version of the `CLI` tool will follow the latest version of the framework. ## Configuration Support **All commands of the tool support configuration parameters through both command line and configuration file simultaneously to improve usability. Command line parameters take precedence; if they are not provided, the tool automatically reads the corresponding parameter names from the configuration file.** -The configuration file path prioritizes the `hack` directory in the current directory (`hack/config.yaml`), and then the framework's default configuration path. For the framework's default configuration file retrieval path, please refer to the chapter: [Configuration Management - File Configuration](../核心组件/配置管理/配置管理-文件配置.md). +The configuration file path prioritizes the `hack` directory in the current directory (`hack/config.yaml`), and then the framework's default configuration path. For the framework's default configuration file retrieval path, please refer to the chapter: [Configuration - File](../核心组件/配置管理/配置管理-文件配置.md). Example configuration file format: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\350\265\204\346\272\220\346\211\223\345\214\205-pack.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\350\265\204\346\272\220\346\211\223\345\214\205-pack.md" index 74cd2f8d3bb..774ac8be6e8 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\350\265\204\346\272\220\346\211\223\345\214\205-pack.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\350\265\204\346\272\220\346\211\223\345\214\205-pack.md" @@ -34,7 +34,7 @@ EXAMPLE gf pack /var/www/public packed/data.go -n=packed ``` -This command is used to package any file into a resource file or a `Go` code file, allowing any file to be packaged and distributed along with the executable file. Additionally, the `build` command supports packaging and compiling in one step; please refer to the `build` command help for details. For an introduction to resource management, please refer to the [Resource Management](../核心组件/资源管理/资源管理.md) section. +This command is used to package any file into a resource file or a `Go` code file, allowing any file to be packaged and distributed along with the executable file. Additionally, the `build` command supports packaging and compiling in one step; please refer to the `build` command help for details. For an introduction to resource management, please refer to the [Resource](../核心组件/资源管理/资源管理.md) section. ## Examples @@ -48,4 +48,4 @@ total 184 ## Further Reading -- [Resource Management - Best Practices](../核心组件/资源管理/资源管理-最佳实践.md) \ No newline at end of file +- [Resource - Best Practices](../核心组件/资源管理/资源管理-最佳实践.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\351\241\271\347\233\256\345\210\233\345\273\272-init.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\351\241\271\347\233\256\345\210\233\345\273\272-init.md" index 2233b197371..f6a934f94c5 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\351\241\271\347\233\256\345\210\233\345\273\272-init.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\274\200\345\217\221\345\267\245\345\205\267/\351\241\271\347\233\256\345\210\233\345\273\272-init.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, GoFrame Framework, Project Creation, gf init, MonoRepo, GoFr description: "Use the gf init command provided by the GoFrame framework to create a project. Starting from version v2, project creation is faster and no longer relies on remote sources; templates are built into the binary files. You can choose to initialize a single repository or monorepo project mode and flexibly adjust the generated directory structure to suit actual business needs." --- :::tip -Starting from version `v2`, project creation no longer relies on remote retrieval. The repository templates are embedded into the tool's binary files via [resource management](../核心组件/资源管理/资源管理.md), making project creation very fast. +Starting from version `v2`, project creation no longer relies on remote retrieval. The repository templates are embedded into the tool's binary files via [Resource](../核心组件/资源管理/资源管理.md), making project creation very fast. ::: ## Usage @@ -31,7 +31,7 @@ EXAMPLE gf init my-mono-repo -m ``` -We can use the `init` command to generate a sample `GoFrame` empty framework project in the current directory and provide a project name parameter. The generated project directory structure is for reference only and can be adjusted according to the specific situation of the business project. For the generated directory structure, please refer to the [code layer design](../框架设计/工程开发设计/代码分层设计.md) section. +We can use the `init` command to generate a sample `GoFrame` empty framework project in the current directory and provide a project name parameter. The generated project directory structure is for reference only and can be adjusted according to the specific situation of the business project. For the generated directory structure, please refer to the [Code Layering](../框架设计/工程开发设计/代码分层设计.md) section. :::note The `GoFrame` framework development recommends the unified use of the official `go module` feature for dependency package management, so there is also a `go.mod` file in the root directory of the empty project. ::: @@ -69,7 +69,7 @@ initializing... initialization done! ``` -For an introduction to monorepos, please refer to the section: [Microservice Monorepo Management Mode](../框架设计/工程开发设计/微服务大仓管理模式.md) +For an introduction to monorepos, please refer to the section: [Mono-Repo Management](../框架设计/工程开发设计/微服务大仓管理模式.md) #### Create a `MonoRepoApp` project diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\345\267\245\347\250\213\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\345\267\245\347\250\213\347\256\241\347\220\206.md" index c7b4a39342a..a18d1180a6f 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\345\267\245\347\250\213\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\345\267\245\347\250\213\347\256\241\347\220\206.md" @@ -9,7 +9,7 @@ description: "Standard project directory structure for microservices development ## Introduction -The project directory for microservices development adopts a unified framework directory structure. For details, please refer to the section: [Project Directory Design🔥](../框架设计/工程开发设计/工程目录设计.md) +The project directory for microservices development adopts a unified framework directory structure. For details, please refer to the section: [Project Structure🔥](../框架设计/工程开发设计/工程目录设计.md) Here we illustrate using the project [https://github.com/gogf/gf-demo-grpc](https://github.com/gogf/gf-demo-grpc) as an example. @@ -27,7 +27,7 @@ Interface documents generated by compiling `proto` protocol files are stored in ### Generate Data Table Structure -We can automatically generate corresponding `protobuf` protocol files based on the database table structure using the `gf gen pbentity / make pbentity` command. For details on the command, please refer to the section: [Data Table PB-gen pbentity](../开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) +We can automatically generate corresponding `protobuf` protocol files based on the database table structure using the `gf gen pbentity / make pbentity` command. For details on the command, please refer to the section: [DB Table To Protobuf](../开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) ### Compile `proto` Protocol Files diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\347\253\257\351\205\215\347\275\256.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\347\253\257\351\205\215\347\275\256.md" index f0c2c296185..6cc33228ab0 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\347\253\257\351\205\215\347\275\256.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\346\234\215\345\212\241\347\253\257\351\205\215\347\275\256.md" @@ -27,7 +27,7 @@ type GrpcServerConfig struct { } ``` -The logic for automatic reading of configuration files is consistent with the framework. For detailed information, please refer to the section: [Configuration Management](../核心组件/配置管理/配置管理.md) +The logic for automatic reading of configuration files is consistent with the framework. For detailed information, please refer to the section: [Configuration](../核心组件/配置管理/配置管理.md) ## Configuration Template @@ -59,6 +59,6 @@ grpc: ``` -The log configuration here is consistent with the `http server` and can use independent log component configuration items to configure the `grpc server` logs. For detailed information about the log component configuration, please refer to this document: [Log Component - Configuration Management](../核心组件/日志组件/日志组件-配置管理.md) +The log configuration here is consistent with the `http server` and can use independent log component configuration items to configure the `grpc server` logs. For detailed information about the log component configuration, please refer to this document: [Logging - Configuration](../核心组件/日志组件/日志组件-配置管理.md) In case the `address` is not configured, the `grpc server` will start using all `ip` addresses of the local network card with a **random free port** (default configuration `:0`). If you want to specify the `ip` but use a random free port to start the `grpc server`, you can configure the `address` using the format `ip:0`, for example: `192.168.1.1:0, 10.0.1.1:0`. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\347\216\257\345\242\203\345\207\206\345\244\207.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\347\216\257\345\242\203\345\207\206\345\244\207.md" index 8dbc356aac5..7f61f43bf13 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\347\216\257\345\242\203\345\207\206\345\244\207.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\347\216\257\345\242\203\345\207\206\345\244\207.md" @@ -26,6 +26,6 @@ After installing the dependency tools, please refer to the chapter [https://grpc ## Framework Tools -Please ensure the version of the GoFrame framework CLI development tool is `>= v2.4`. For tool installation and upgrade, please refer to the chapter: [Development Tools](../开发工具/开发工具.md) +Please ensure the version of the GoFrame framework CLI development tool is `>= v2.4`. For tool installation and upgrade, please refer to the chapter: [CLI Tool](../开发工具/开发工具.md) The framework tools provide additional command support for the `GRPC` protocol, greatly simplifying the microservices development based on the `GRPC` protocol. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\350\204\232\346\211\213\346\236\266\346\250\241\345\235\227.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\350\204\232\346\211\213\346\236\266\346\250\241\345\235\227.md" index ca30f16dbde..293d80a21b0 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\350\204\232\346\211\213\346\236\266\346\250\241\345\235\227.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\345\276\256\346\234\215\345\212\241\345\274\200\345\217\221/\350\204\232\346\211\213\346\236\266\346\250\241\345\235\227.md" @@ -13,7 +13,7 @@ The `GoFrame` framework includes multiple microservice components and provides a The server is maintained by the `grpcx.Server` module, used for creating and maintaining server objects. Example usage: [https://github.com/gogf/gf/blob/master/example/rpc/grpcx/basic/server/main.go](https://github.com/gogf/gf/blob/master/example/rpc/grpcx/basic/server/main.go) -The creation of the server often involves using configuration files. For an introduction to server configuration files, please refer to the chapter: [Server Configuration](服务端配置.md) +The creation of the server often involves using configuration files. For an introduction to server configuration files, please refer to the chapter: [GRPC Server Configuration](服务端配置.md) ```go package main diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\347\233\221\346\216\247\345\221\212\350\255\246/\347\233\221\346\216\247\345\221\212\350\255\246-\347\273\204\344\273\266\346\214\207\346\240\207.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\347\233\221\346\216\247\345\221\212\350\255\246/\347\233\221\346\216\247\345\221\212\350\255\246-\347\273\204\344\273\266\346\214\207\346\240\207.md" index d11e2e4248a..699636dc044 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\347\233\221\346\216\247\345\221\212\350\255\246/\347\233\221\346\216\247\345\221\212\350\255\246-\347\273\204\344\273\266\346\214\207\346\240\207.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\347\233\221\346\216\247\345\221\212\350\255\246/\347\233\221\346\216\247\345\221\212\350\255\246-\347\273\204\344\273\266\346\214\207\346\240\207.md" @@ -11,5 +11,5 @@ Supported monitoring metrics for the framework components, with other component | Component | Document Address | | --- | --- | -| `HTTP Client` | [HTTPClient-Monitoring Metrics](../../WEB服务开发/HTTPClient/HTTPClient-监控指标.md) | -| `HTTP Server` | [HTTPServer-Monitoring Metrics](../../WEB服务开发/高级特性/HTTPServer-监控指标.md) | \ No newline at end of file +| `HTTP Client` | [HTTPClient - Metrics](../../WEB服务开发/HTTPClient/HTTPClient-监控指标.md) | +| `HTTP Server` | [HTTPServer - Metrics](../../WEB服务开发/高级特性/HTTPServer-监控指标.md) | \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\351\223\276\350\267\257\350\267\237\350\270\252/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213-\346\225\260\346\215\256\346\223\215\344\275\234.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\351\223\276\350\267\257\350\267\237\350\270\252/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213-\346\225\260\346\215\256\346\223\215\344\275\234.md" index 1be81640346..7cdb599afeb 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\351\223\276\350\267\257\350\267\237\350\270\252/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213-\346\225\260\346\215\256\346\223\215\344\275\234.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247/\346\234\215\345\212\241\351\223\276\350\267\257\350\267\237\350\270\252/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213/\351\223\276\350\267\257\350\267\237\350\270\252-HTTP\347\244\272\344\276\213-\346\225\260\346\215\256\346\223\215\344\275\234.md" @@ -218,14 +218,14 @@ Brief explanation of the server code: 1. First, the client also needs to initialize `Jaeger` via the `jaeger.Init` method. 2. In this example, we use database and database cache features to demonstrate tracing for both `ORM` and `Redis`. -3. At program startup, we set the adapter of the current database cache management to `redis` using the following method. For those interested in cache adapter introductions, please refer to the [Cache Management-Interface Design](../../../核心组件/缓存管理/缓存管理-接口设计.md) section. +3. At program startup, we set the adapter of the current database cache management to `redis` using the following method. For those interested in cache adapter introductions, please refer to the [Caching - Interface](../../../核心组件/缓存管理/缓存管理-接口设计.md) section. ```go g.DB().GetCache().SetAdapter(gcache.NewAdapterRedis(g.Redis())) ``` 4. In `ORM` operations, the `Ctx` method needs to be used to pass the context variable to the component. The `orm` component automatically recognizes if the current context contains tracing information and enables tracing features if it does. -5. In `ORM` operations, the `Cache` method is used here to cache query results to `redis`, and in delete operations, the `Cache` method is also used to clear the cache results in `redis`. For introductions to `ORM` cache management, please refer to [ORM Chain Operation-Query Cache](../../../核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) section. +5. In `ORM` operations, the `Cache` method is used here to cache query results to `redis`, and in delete operations, the `Cache` method is also used to clear the cache results in `redis`. For introductions to `ORM` cache management, please refer to [ORM Model - Query Cache](../../../核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) section. ## View Results diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/I18N\345\233\275\351\231\205\345\214\226/I18N\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/I18N\345\233\275\351\231\205\345\214\226/I18N\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256\347\256\241\347\220\206.md" index 1427a531ab4..d3a964bf40e 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/I18N\345\233\275\351\231\205\345\214\226/I18N\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/I18N\345\233\275\351\231\205\345\214\226/I18N\345\233\275\351\231\205\345\214\226-\351\205\215\347\275\256\347\256\241\347\220\206.md" @@ -11,7 +11,7 @@ As one of the core components of the framework, inheriting the consistent conven ## File Formats -The `gi18n` internationalization component supports five common configuration file formats: `xml/ini/yaml/toml/json/properties` (for a more detailed list of file supports, please refer to the configuration management section: [Configuration Management](../配置管理/配置管理.md)). Similarly, like the configuration management module, the framework recommends using the `toml` file format. +The `gi18n` internationalization component supports five common configuration file formats: `xml/ini/yaml/toml/json/properties` (for a more detailed list of file supports, please refer to the configuration management section: [Configuration](../配置管理/配置管理.md)). Similarly, like the configuration management module, the framework recommends using the `toml` file format. ## Reading Path @@ -75,4 +75,4 @@ For example, the following `i18n` directory structure and file format are suppor ## Resource Manager -`gi18n` supports the resource manager by default (for more details, refer to the section: [Resource Management](../资源管理/资源管理.md)). By default, it will retrieve the `manifest/i18n` and `i18n` directories from the `gres` configuration manager, or the `i18n` directory path set by the developer. \ No newline at end of file +`gi18n` supports the resource manager by default (for more details, refer to the section: [Resource](../资源管理/资源管理.md)). By default, it will retrieve the `manifest/i18n` and `i18n` directories from the `gres` configuration manager, or the `i18n` directory path set by the developer. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\345\221\275\344\273\244\347\256\241\347\220\206/\345\221\275\344\273\244\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\345\221\275\344\273\244\347\256\241\347\220\206/\345\221\275\344\273\244\347\256\241\347\220\206.md" index 5b128698cfb..555aabad657 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\345\221\275\344\273\244\347\256\241\347\220\206/\345\221\275\344\273\244\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\345\221\275\344\273\244\347\256\241\347\220\206/\345\221\275\344\273\244\347\256\241\347\220\206.md" @@ -47,7 +47,7 @@ When compared to `Cobra`, the `gcmd` command line component of the `GoFrame` fra - The `gcmd` component allows reading parameters via configuration components when there are no terminal arguments. - The `gcmd` component supports tracing to facilitate the transfer of trace information between parent and child processes. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\270\212\344\270\213\346\226\207\345\217\230\351\207\217.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\270\212\344\270\213\346\226\207\345\217\230\351\207\217.md" index 87f282c91ea..3574a79c22c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\270\212\344\270\213\346\226\207\345\217\230\351\207\217.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\270\212\344\270\213\346\226\207\345\217\230\351\207\217.md" @@ -34,7 +34,7 @@ context deadline exceeded, SELECT SLEEP(10) ## Trace Information -Context variables can also pass trace information, and when combined with the logging component, can print trace information to logs (only when `ORM` logging is enabled). Please refer to the trace topic chapter: [Service Trace](../../服务可观测性/服务链路跟踪/服务链路跟踪.md). +Context variables can also pass trace information, and when combined with the logging component, can print trace information to logs (only when `ORM` logging is enabled). Please refer to the trace topic chapter: [Service Tracing](../../服务可观测性/服务链路跟踪/服务链路跟踪.md). ## Model Context Operations @@ -67,4 +67,4 @@ The `SHOW FULL COLUMNS FROM `user`` query is used by the `ORM` component to fetc ::: ## Nested Transaction Support -Support for nested transactions relies on hierarchical passing of `Context` variables. For details, please refer to the chapter: [ORM Transaction Handling](ORM事务处理/ORM事务处理.md). \ No newline at end of file +Support for nested transactions relies on hierarchical passing of `Context` variables. For details, please refer to the chapter: [ORM - Transaction](ORM事务处理/ORM事务处理.md). \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\345\270\270\350\247\204\346\223\215\344\275\234.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\345\270\270\350\247\204\346\223\215\344\275\234.md" index c57e170511a..eb4f607b8b9 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\345\270\270\350\247\204\346\223\215\344\275\234.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\345\270\270\350\247\204\346\223\215\344\275\234.md" @@ -9,7 +9,7 @@ description: "Basic operations for ORM transaction handling in the GoFrame frame The usual transaction operation methods are `Begin/Commit/Rollback`, with each method specifying a specific transaction operation. A transaction operation can be initiated by executing the `db.Begin` method, which returns an interface for transaction operations, with the type `gdb.Tx`. You can perform subsequent database operations through this object, and you can submit changes with `tx.Commit` or rollback changes with `tx.Rollback`. :::warning -Common Issues to Note: After initiating a transaction operation, be sure to close the transaction when no longer needed using `Commit`/`Rollback` operations. It is advisable to make good use of the `defer` method. If the transaction is not closed after use, it can lead to uncontrolled growth in goroutines on the application side and saturation of transaction threads on the database side, causing subsequent transaction requests to timeout. Furthermore, it is recommended to use the `Transaction` closure method introduced later for safely implementing transaction operations: [ORM Transaction Handling - Closure Operations](ORM事务处理-闭包操作.md) +Common Issues to Note: After initiating a transaction operation, be sure to close the transaction when no longer needed using `Commit`/`Rollback` operations. It is advisable to make good use of the `defer` method. If the transaction is not closed after use, it can lead to uncontrolled growth in goroutines on the application side and saturation of transaction threads on the database side, causing subsequent transaction requests to timeout. Furthermore, it is recommended to use the `Transaction` closure method introduced later for safely implementing transaction operations: [ORM Transaction - Closure](ORM事务处理-闭包操作.md) ::: ## 1. Initiating a Transaction @@ -67,4 +67,4 @@ if tx, err := db.Begin(); err == nil { } ``` -For other chain operations, please refer to the [ORM Chain Operations (🔥Key Points🔥)](../ORM链式操作/ORM链式操作.md) section. \ No newline at end of file +For other chain operations, please refer to the [ORM - Model 🔥](../ORM链式操作/ORM链式操作.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\351\227\255\345\214\205\346\223\215\344\275\234.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\351\227\255\345\214\205\346\223\215\344\275\234.md" index f8ae01c8c61..c0ade0abbec 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\351\227\255\345\214\205\346\223\215\344\275\234.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\272\213\345\212\241\345\244\204\347\220\206/ORM\344\272\213\345\212\241\345\244\204\347\220\206-\351\227\255\345\214\205\346\223\215\344\275\234.md" @@ -57,4 +57,4 @@ g.DB().Transaction(context.TODO(), func(ctx context.Context, tx gdb.TX) error { }) ``` -The closure operation method allows for easy implementation of nested transactions, and it is essentially transparent to upper-level business developers. For more details, you can continue reading the chapter: [ORM Transaction Handling - Nested Transactions](ORM事务处理-嵌套事务.md) \ No newline at end of file +The closure operation method allows for easy implementation of nested transactions, and it is essentially transparent to upper-level business developers. For more details, you can continue reading the chapter: [ORM Transaction - Nested](ORM事务处理-嵌套事务.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\345\270\270\350\247\201\351\227\256\351\242\230.md" index 0f699263752..75b2da0d6ad 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\345\270\270\350\247\201\351\227\256\351\242\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -9,7 +9,7 @@ description: "Implement database account password encryption in configuration fi ## How to Implement Database Account Password Encryption in Configuration Files -In certain scenarios, database account passwords cannot be configured in plaintext within configuration files and must be encrypted. During the database connection, the encrypted fields in the configuration file need to be decrypted. This requirement can be achieved by customizing a `Driver` (for detailed information about `Driver`, please refer to the chapter: [ORM Interface Development](../ORM接口开发/ORM接口开发.md)). Taking `mysql` as an example, we can write our own `Driver`, wrap the `mysql driver` from the framework community components, and override its `Open` method. Code example: +In certain scenarios, database account passwords cannot be configured in plaintext within configuration files and must be encrypted. During the database connection, the encrypted fields in the configuration file need to be decrypted. This requirement can be achieved by customizing a `Driver` (for detailed information about `Driver`, please refer to the chapter: [ORM - Interface](../ORM接口开发/ORM接口开发.md)). Taking `mysql` as an example, we can write our own `Driver`, wrap the `mysql driver` from the framework community components, and override its `Open` method. Code example: ```go import ( diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" index b8d68a3f05d..59b6f9a5c7f 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\344\275\277\347\224\250\351\205\215\347\275\256/ORM\344\275\277\347\224\250\351\205\215\347\275\256-\351\205\215\347\275\256\346\226\207\344\273\266.md" @@ -138,7 +138,7 @@ database: ``` Where `database.logger` is the log configuration for `gdb`, which is a special configuration item. When this configuration does not exist, the default configuration of the logging component will be used. -For more details, refer to the [Log Component - Configuration Management](../../../../docs/核心组件/日志组件/日志组件-配置管理.md) section. +For more details, refer to the [Logging - Configuration](../../../../docs/核心组件/日志组件/日志组件-配置管理.md) section. :::warning Please note: since the `ORM` uses a secure preprocessing execution method at the lower layer, the submitted `SQL` and parameters are actually separate. Therefore, the complete `SQL` recorded in logs is for reference and convenient manual reading only and is not the actual `SQL` submitted to the lower layer. ::: \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\345\270\270\350\247\201\351\227\256\351\242\230.md" index edda0f8b9a9..a19bcfbe8a7 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\345\270\270\350\247\201\351\227\256\351\242\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -11,7 +11,7 @@ description: "Common issues that may be encountered while performing ORM operati ![](/markdown/7b384b6f57115b11938d9c0a30dde732.png) -If this error occurs during database execution, it may be due to the local database connection pool connections having expired. You can check if the `MaxLifeTime` configuration set on the client exceeds the maximum timeout set by the database server. For more client configurations, please refer to the section: [ORM Usage Configuration](./ORM使用配置/ORM使用配置.md) +If this error occurs during database execution, it may be due to the local database connection pool connections having expired. You can check if the `MaxLifeTime` configuration set on the client exceeds the maximum timeout set by the database server. For more client configurations, please refer to the section: [ORM - Configuration](./ORM使用配置/ORM使用配置.md) ## `update/insert` operations ineffective diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221-\345\233\236\350\260\203\345\244\204\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221-\345\233\236\350\260\203\345\244\204\347\220\206.md" index e4a45b8eef9..982df8b29f2 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221-\345\233\236\350\260\203\345\244\204\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221-\345\233\236\350\260\203\345\244\204\347\220\206.md" @@ -9,7 +9,7 @@ description: "When developing ORM interfaces using the GoFrame framework, custom ## Introduction -Custom callback handling is the most common implementation in interface development, where it involves **replacing and modifying** some methods in the interface to inject custom logic into the default implementation of the driver. By referring to the interface relationship diagram ([ORM Interface Development](ORM接口开发.md)), we understand that all `SQL` statement executions will pass through the `DoQuery`, `DoExec`, or `DoFilter` interfaces. Depending on the requirements, you can **implement and override** the relevant interface methods in the custom driver to achieve the desired functionality. +Custom callback handling is the most common implementation in interface development, where it involves **replacing and modifying** some methods in the interface to inject custom logic into the default implementation of the driver. By referring to the interface relationship diagram ([ORM - Interface](ORM接口开发.md)), we understand that all `SQL` statement executions will pass through the `DoQuery`, `DoExec`, or `DoFilter` interfaces. Depending on the requirements, you can **implement and override** the relevant interface methods in the custom driver to achieve the desired functionality. A common use case is to perform **log recording or unified security checks** on `SQL` at the `ORM` lower layer. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221.md" index f3a54da4892..5df947fb61c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\216\245\345\217\243\345\274\200\345\217\221/ORM\346\216\245\345\217\243\345\274\200\345\217\221.md" @@ -42,7 +42,7 @@ type Driver interface { The `New` method is used to create a database operation object corresponding to the driver based on the `Core` database base object and the `ConfigNode` configuration object. It should be noted that the returned database object needs to implement the `DB` interface. The database base object `Core` has already implemented the `DB` interface, so developers only need to "inherit" the `Core` object and then override the corresponding interface implementation methods as needed. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\234\200\344\275\263\345\256\236\350\267\265/\346\237\245\350\257\242\346\227\266\351\201\277\345\205\215\350\277\224\345\233\236\345\257\271\350\261\241\345\210\235\345\247\213\345\214\226\345\217\212sql.ErrNoRows\345\210\244\346\226\255.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\234\200\344\275\263\345\256\236\350\267\265/\346\237\245\350\257\242\346\227\266\351\201\277\345\205\215\350\277\224\345\233\236\345\257\271\350\261\241\345\210\235\345\247\213\345\214\226\345\217\212sql.ErrNoRows\345\210\244\346\226\255.md" index 1ec367d3d1f..844449b7b2c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\234\200\344\275\263\345\256\236\350\267\265/\346\237\245\350\257\242\346\227\266\351\201\277\345\205\215\350\277\224\345\233\236\345\257\271\350\261\241\345\210\235\345\247\213\345\214\226\345\217\212sql.ErrNoRows\345\210\244\346\226\255.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\234\200\344\275\263\345\256\236\350\267\265/\346\237\245\350\257\242\346\227\266\351\201\277\345\205\215\350\277\224\345\233\236\345\257\271\350\261\241\345\210\235\345\247\213\345\214\226\345\217\212sql.ErrNoRows\345\210\244\346\226\255.md" @@ -46,4 +46,4 @@ func (s *sTask) GetOne(ctx context.Context, id uint64) (out *entity.ResourceTask :::warning Note the use of `&out` in the code. ::: -For more information, please refer to: [Handling ORM Results - Judgment for Empty Results](../ORM结果处理/ORM结果处理-为空判断.md) \ No newline at end of file +For more information, please refer to: [ORM Result - Empty Check](../ORM结果处理/ORM结果处理-为空判断.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\250\241\345\236\213\347\224\237\346\210\220.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\250\241\345\236\213\347\224\237\346\210\220.md" index 43de39d5e8a..5f7caedbafa 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\250\241\345\236\213\347\224\237\346\210\220.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\346\250\241\345\236\213\347\224\237\346\210\220.md" @@ -9,4 +9,4 @@ description: "GoFrame framework provides a simple ORM data table model auto gene ## Model Auto Generation -The `GoFrame` framework supports highly convenient data table model generation features, implemented through the `gf gen dao/model` toolchain command. Please refer to the [Development Tools](../../开发工具/开发工具.md) section for details. \ No newline at end of file +The `GoFrame` framework supports highly convenient data table model generation features, implemented through the `gf gen dao/model` toolchain command. Please refer to the [CLI Tool](../../开发工具/开发工具.md) section for details. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\344\270\272\347\251\272\345\210\244\346\226\255.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\344\270\272\347\251\272\345\210\244\346\226\255.md" index bad30af7f0e..bebfb3e7f94 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\344\270\272\347\251\272\345\210\244\346\226\255.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\344\270\272\347\251\272\345\210\244\346\226\255.md" @@ -148,5 +148,5 @@ if err == sql.ErrNoRows { ``` :::warning Due to `Golang` reflection features employed in `struct` conversion, there is a certain performance overhead. If you are dealing with conversions of large numbers of query result data into `struct` array objects and need to improve conversion performance, please refer to the custom implementation of the corresponding `struct` `UnmarshalValue` method: -[Type Conversion-UnmarshalValue](../../类型转换/类型转换-UnmarshalValue.md) +[Type Conversion - Interface](../../类型转换/类型转换-UnmarshalValue.md) ::: \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\347\273\223\346\236\234\347\261\273\345\236\213.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\347\273\223\346\236\234\347\261\273\345\236\213.md" index 91b5c016427..f2ba86fc677 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\347\273\223\346\236\234\347\261\273\345\236\213.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\347\273\223\346\236\234\345\244\204\347\220\206/ORM\347\273\223\346\236\234\345\244\204\347\220\206-\347\273\223\346\236\234\347\261\273\345\236\213.md" @@ -116,7 +116,7 @@ NickName Nick_Name match Nick-Name Nick_Name match ``` :::tip -The conversion from a database result set to `struct` relies on the `gconv.Struct` method. Therefore, if you want to achieve **custom attribute conversion**, and for more detailed mapping rules, please refer to the section on [Type Conversion - Struct Conversion](../../类型转换/类型转换-Struct转换.md). +The conversion from a database result set to `struct` relies on the `gconv.Struct` method. Therefore, if you want to achieve **custom attribute conversion**, and for more detailed mapping rules, please refer to the section on [Type Conversion - Struct](../../类型转换/类型转换-Struct转换.md). ::: ## 3. `Result` Data Collection @@ -124,7 +124,7 @@ The `Result/Record` data types, based on the requirement to manipulate the resul API documentation: [https://pkg.go.dev/github.com/gogf/gf/v2/database/gdb](https://pkg.go.dev/github.com/gogf/gf/v2/database/gdb) -Due to the simplicity of the methods, there are no examples here. However, pay attention to two frequently used methods: `Record.Map` and `Result.List`, which are used to convert the `ORM` query result information into data types suitable for display. Since the field values of the result set are natively of `[]byte` type, although a new `Value` type has been encapsulated and provides dozens of common type conversion methods (for more, please read the section on [Generic Type - gvar](../../../组件列表/数据结构/泛型类型-gvar/泛型类型-gvar.md)), most often we need to directly return the result `Result` or `Record` as `json` or `xml` data structures, requiring conversion. +Due to the simplicity of the methods, there are no examples here. However, pay attention to two frequently used methods: `Record.Map` and `Result.List`, which are used to convert the `ORM` query result information into data types suitable for display. Since the field values of the result set are natively of `[]byte` type, although a new `Value` type has been encapsulated and provides dozens of common type conversion methods (for more, please read the section on [Generic](../../../组件列表/数据结构/泛型类型-gvar/泛型类型-gvar.md)), most often we need to directly return the result `Result` or `Record` as `json` or `xml` data structures, requiring conversion. Usage example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\344\272\213\345\212\241\345\244\204\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\344\272\213\345\212\241\345\244\204\347\220\206.md" index 4fa562cf537..dbb55d08281 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\344\272\213\345\212\241\345\244\204\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\344\272\213\345\212\241\345\244\204\347\220\206.md" @@ -9,7 +9,7 @@ description: "Using transaction handling in the GoFrame framework for ORM chaini `Model` objects can also be created through the `TX` transaction interface. The functionality of a `Model` object created through a transaction object is the same as that of one created through a `DB` database object, except that the former's operations are based on transactions. Once the transaction is committed or rolled back, the corresponding `Model` object cannot be used further; otherwise, an error will be returned. Because the `TX` interface cannot be reused, a transaction object corresponds to a single transaction process and ends after `Commit`/`Rollback`. -This chapter provides a simple introduction to transaction handling methods involved in chaining operations. For more detailed information, please refer to the [ORM Transaction Handling](../ORM事务处理/ORM事务处理.md) chapter. +This chapter provides a simple introduction to transaction handling methods involved in chaining operations. For more detailed information, please refer to the [ORM - Transaction](../ORM事务处理/ORM事务处理.md) chapter. ## Example 1: Using `Transaction` diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\206\231\345\205\245\344\277\235\345\255\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\206\231\345\205\245\344\277\235\345\255\230.md" index d43443c8889..12c16a2f40a 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\206\231\345\205\245\344\277\235\345\255\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\206\231\345\205\245\344\277\235\345\255\230.md" @@ -33,7 +33,7 @@ These chained operation methods are used for data insertion and support automati }).OnConflict("id").Save() ``` -> Some database types do not support `Replace/Save` methods. Refer to the [Chained Operations](../ORM链式操作/ORM链式操作.md) section for details. +> Some database types do not support `Replace/Save` methods. Refer to the [ORM - Model 🔥](../ORM链式操作/ORM链式操作.md) section for details. These methods need to be used in conjunction with the `Data` method, which is used to pass data parameters for data insertion/updating and other write operations. @@ -158,7 +158,7 @@ g.Model("user").Data(g.List{ ## `RawSQL` Statement Embedding -`gdb.Raw` is a string type whose parameters will be directly embedded as `SQL` fragments into the final `SQL` statement submitted to the underlying database, not automatically converted to string parameter types, nor treated as preprocessed parameters. For more details, refer to the section: [Advanced ORM Features-RawSQL](../ORM高级特性/ORM高级特性-RawSQL.md). For example: +`gdb.Raw` is a string type whose parameters will be directly embedded as `SQL` fragments into the final `SQL` statement submitted to the underlying database, not automatically converted to string parameter types, nor treated as preprocessed parameters. For more details, refer to the section: [ORM Senior - RawSQL](../ORM高级特性/ORM高级特性-RawSQL.md). For example: ```go // INSERT INTO `user`(`id`,`passport`,`password`,`nickname`,`create_time`) VALUES('id+2','john','123456','now()') diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\257\271\350\261\241\350\276\223\345\205\245.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\257\271\350\261\241\350\276\223\345\205\245.md" index c263b91b413..35250ce8083 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\257\271\350\261\241\350\276\223\345\205\245.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\345\257\271\350\261\241\350\276\223\345\205\245.md" @@ -31,4 +31,4 @@ type User struct { } ``` -In this, the attributes of `struct` should be public (first letter capitalized), and the `orm` tag corresponds to the field name of the data table. The tags for table field mapping relationships can use `orm`, `gconv`, or the traditional `json` tag. However, when all three tags are present, the `orm` tag takes precedence. To avoid conflicts with `JSON` encoding tags when converting `struct` objects to `JSON` data format, it is recommended to use the `orm` tag to achieve the database `ORM` mapping relationship. For more detailed conversion rules, please refer to the [Type Conversion - Map Conversion](../../类型转换/类型转换-Map转换.md) section. \ No newline at end of file +In this, the attributes of `struct` should be public (first letter capitalized), and the `orm` tag corresponds to the field name of the data table. The tags for table field mapping relationships can use `orm`, `gconv`, or the traditional `json` tag. However, when all three tags are present, the `orm` tag takes precedence. To avoid conflicts with `JSON` encoding tags when converting `struct` objects to `JSON` data format, it is recommended to use the `orm` tag to achieve the database `ORM` mapping relationship. For more detailed conversion rules, please refer to the [Type Conversion - Map](../../类型转换/类型转换-Map转换.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\225\260\346\215\256\346\237\245\350\257\242/ORM\346\237\245\350\257\242-Join\346\237\245\350\257\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\225\260\346\215\256\346\237\245\350\257\242/ORM\346\237\245\350\257\242-Join\346\237\245\350\257\242.md" index 56c390960b8..8249b2c5604 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\225\260\346\215\256\346\237\245\350\257\242/ORM\346\237\245\350\257\242-Join\346\237\245\350\257\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\225\260\346\215\256\346\237\245\350\257\242/ORM\346\237\245\350\257\242-Join\346\237\245\350\257\242.md" @@ -15,7 +15,7 @@ description: "How to use ORM for LeftJoin, RightJoin, and InnerJoin queries in t :::note Actually, we do not recommend using `Join` for join queries, especially in scenarios with large data volumes and high concurrent request volumes, as it can easily cause performance issues and increase maintenance complexity. It is recommended to use it when necessary. Additionally, you can refer to -[ORM Chaining Operations-Model Association](../ORM%E9%93%BE%E5%BC%8F%E6%93%8D%E4%BD%9C-%E6%A8%A1%E5%9E%8B%E5%85%B3%E8%81%94/%E6%A8%A1%E5%9E%8B%E5%85%B3%E8%81%94-%E5%8A%A8%E6%80%81%E5%85%B3%E8%81%94-ScanList.md) +[Model Association - ScanList](../ORM链式操作-模型关联/模型关联-动态关联-ScanList.md) section where the database is responsible only for storing data and performing simple single-table operations, with data aggregation being implemented at the code level using the functionalities provided by `ORM`. ::: Example usage: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244.md" index 408de2a3ac5..a53fa83ea3b 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244.md" @@ -39,7 +39,7 @@ database: Especially for historical projects, where different time field names already exist, the time field names can be flexibly configured using configuration items. ::: -For a complete database configuration, please refer to the [ORM Usage Configuration](../../ORM使用配置/ORM使用配置.md) section. +For a complete database configuration, please refer to the [ORM - Configuration](../../ORM使用配置/ORM使用配置.md) section. ## Feature Activation diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-SoftTimeOption.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-SoftTimeOption.md" index 2e099e535d8..58682f0f345 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-SoftTimeOption.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-SoftTimeOption.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, Time Maintenance, SoftTimeOption, Database Operation, Time G description: "Introduction on how to use SoftTimeOption in the GoFrame framework to control time writing granularity, converting from second-level to millisecond-level timestamps, and providing relevant MySQL table structures and example code to help developers flexibly configure time fields, supporting multiple time granularity options to meet different project needs, and inserting data through ORM methods" --- -In the previous [Integer Field](./时间维护-整型字段.md) example, the time fields are written with second-level timestamps. But what if we want to control the granularity of time writing and write millisecond-level timestamps? We can use `SoftTimeOption` to control the granularity of the written time values. +In the previous [Time Fields - Integer Fields](./时间维护-整型字段.md) example, the time fields are written with second-level timestamps. But what if we want to control the granularity of time writing and write millisecond-level timestamps? We can use `SoftTimeOption` to control the granularity of the written time values. ## Example SQL Here's the `MySQL` table structure used in the following example code. Since we need to write values with a granularity finer than seconds, the field type uses `big int` for storage. @@ -25,7 +25,7 @@ CREATE TABLE `user` ( ``` :::tip -If you try to test and view the `SQL` statements executed by `ORM` operations, it is recommended to enable `debug` mode (Documents: [Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and the `SQL` statements will automatically be printed in the log output. +If you try to test and view the `SQL` statements executed by `ORM` operations, it is recommended to enable `debug` mode (Documents: [ORM Senior - Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and the `SQL` statements will automatically be printed in the log output. ::: ## `created_at` Write Time diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\237\272\346\234\254\344\275\277\347\224\250.md" index 5c77126a828..8c03db0d95e 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\237\272\346\234\254\344\275\277\347\224\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\237\272\346\234\254\344\275\277\347\224\250.md" @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `user_detail` ( :::tip - If you choose to use the time field type, you need to set the field to allow `NULL`, so that soft delete can take effect. -- If you try to test and view the `SQL` statements executed by `ORM` operations, it is recommended to enable `debug` mode (related document: [Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and `SQL` statements will be automatically printed to the log output. +- If you try to test and view the `SQL` statements executed by `ORM` operations, it is recommended to enable `debug` mode (related document: [ORM Senior - Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and `SQL` statements will be automatically printed to the log output. ::: ## `created_at` Writing Time diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\270\203\345\260\224\345\255\227\346\256\265.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\270\203\345\260\224\345\255\227\346\256\265.md" index 407be09c3f3..513bde1b860 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\270\203\345\260\224\345\255\227\346\256\265.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\345\270\203\345\260\224\345\255\227\346\256\265.md" @@ -27,7 +27,7 @@ CREATE TABLE `user` ( We recommend using `bit(1)` to represent the `bool` type for the field instead of `tinyint(1)` or `int(1)` because the range of `tinyint(1)/int(1)` is `-127~127`, which is often used as a status field type. The range of `bit(1)` is `0/1`, which can effectively represent the two values `false/true` of the `bool` type. :::tip -If you try to test and view the `ORM` operation execution SQL statements, it is recommended to enable the `debug` mode (related documentation: [Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and the SQL statements will be automatically printed to the log output. +If you try to test and view the `ORM` operation execution SQL statements, it is recommended to enable the `debug` mode (related documentation: [ORM Senior - Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), and the SQL statements will be automatically printed to the log output. ::: ## `created_at` Write Time diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\346\225\264\345\236\213\345\255\227\346\256\265.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\346\225\264\345\236\213\345\255\227\346\256\265.md" index dd0d0647da9..eafe35db944 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\346\225\264\345\236\213\345\255\227\346\256\265.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\227\266\351\227\264\347\273\264\346\212\244/\346\227\266\351\227\264\347\273\264\346\212\244-\346\225\264\345\236\213\345\255\227\346\256\265.md" @@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS `user_detail` ( ``` :::tip -If you try to test viewing the `SQL` statements executed by `ORM` operations, it's recommended to enable `debug` mode (related documentation: [Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), the `SQL` statements will be automatically printed to log output. +If you try to test viewing the `SQL` statements executed by `ORM` operations, it's recommended to enable `debug` mode (related documentation: [ORM Senior - Debug Mode](../../ORM高级特性/ORM高级特性-调试模式.md)), the `SQL` statements will be automatically printed to log output. ::: ## `created_at` Writing Time @@ -103,4 +103,4 @@ g.Model("user", "u").LeftJoin("user_detail", "ud", "ud.id=u.id").Where("u.id", 1 ## Control the Granularity of Time Writing -The time field value writing in this chapter is by default in seconds-level timestamp. But if we want to control the granularity of time writing such as writing a millisecond-level timestamp, how do we do it? We can use [SoftTimeOption](./时间维护-SoftTimeOption.md). \ No newline at end of file +The time field value writing in this chapter is by default in seconds-level timestamp. But if we want to control the granularity of time writing such as writing a millisecond-level timestamp, how do we do it? We can use [Time Fields - SoftTimeOption](./时间维护-SoftTimeOption.md). \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\233\264\346\226\260\345\210\240\351\231\244.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\233\264\346\226\260\345\210\240\351\231\244.md" index 34908e87937..89dffaef9de 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\233\264\346\226\260\345\210\240\351\231\244.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\233\264\346\226\260\345\210\240\351\231\244.md" @@ -104,7 +104,7 @@ g.Model("article").Where("id", 1).Decrement("views", 10000) ## `RawSQL` Statement Embedding -`gdb.Raw` is a string type, and the parameter of this type will be directly embedded as an `SQL` fragment into the SQL statement submitted to the underlying layer. It will not be automatically converted to a string parameter type, nor treated as a pre-processing parameter. For more detailed introduction, please refer to the chapter: [Advanced ORM Features - RawSQL](../ORM高级特性/ORM高级特性-RawSQL.md). For example: +`gdb.Raw` is a string type, and the parameter of this type will be directly embedded as an `SQL` fragment into the SQL statement submitted to the underlying layer. It will not be automatically converted to a string parameter type, nor treated as a pre-processing parameter. For more detailed introduction, please refer to the chapter: [ORM Senior - RawSQL](../ORM高级特性/ORM高级特性-RawSQL.md). For example: ```go // UPDATE `user` SET login_count='login_count+1',update_time='now()' WHERE id=1 @@ -149,4 +149,4 @@ g.Model("user").Delete("score < ", 60) ## Soft Delete Feature -For soft delete feature details, please refer to the chapter: [ORM Chaining Operations - Time Maintenance](ORM链式操作-时间维护/ORM链式操作-时间维护.md) \ No newline at end of file +For soft delete feature details, please refer to the chapter: [ORM Model - Time Fields](ORM链式操作-时间维护/ORM链式操作-时间维护.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\237\245\350\257\242\347\274\223\345\255\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\237\245\350\257\242\347\274\223\345\255\230.md" index 5e1c54b906c..c16e057fc87 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\237\245\350\257\242\347\274\223\345\255\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\237\245\350\257\242\347\274\223\345\255\230.md" @@ -55,7 +55,7 @@ redisCache := gcache.NewAdapterRedis(g.Redis()) g.DB().GetCache().SetAdapter(redisCache) ``` -For more information, refer to: [Cache Management - Redis Cache](../../缓存管理/缓存管理-Redis缓存.md) +For more information, refer to: [Caching - Redis](../../缓存管理/缓存管理-Redis缓存.md) ### Management Methods diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\250\241\345\236\213\345\205\263\350\201\224/\346\250\241\345\236\213\345\205\263\350\201\224-\351\235\231\346\200\201\345\205\263\350\201\224-With\347\211\271\346\200\247.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\250\241\345\236\213\345\205\263\350\201\224/\346\250\241\345\236\213\345\205\263\350\201\224-\351\235\231\346\200\201\345\205\263\350\201\224-With\347\211\271\346\200\247.md" index 1096b1c45ea..c2fbea7e6a9 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\250\241\345\236\213\345\205\263\350\201\224/\346\250\241\345\236\213\345\205\263\350\201\224-\351\235\231\346\200\201\345\205\263\350\201\224-With\347\211\271\346\200\247.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\223\276\345\274\217\346\223\215\344\275\234/ORM\351\223\276\345\274\217\346\223\215\344\275\234-\346\250\241\345\236\213\345\205\263\350\201\224/\346\250\241\345\236\213\345\205\263\350\201\224-\351\235\231\346\200\201\345\205\263\350\201\224-With\347\211\271\346\200\247.md" @@ -9,7 +9,7 @@ description: "The With feature in the GoFrame framework demonstrates how to achi ## 1. Design Background -Everyone knows that usability and maintainability have always been the focus of `goframe`, and it's also a significant difference between `goframe` and other frameworks and components. `goframe` does not adopt other common `ORM` model association designs like `BelongsTo`, `HasOne`, `HasMany`, `ManyToMany`, which are cumbersome to maintain due to foreign key constraints, additional tag annotations, etc., imposing a certain cognitive load on developers. Therefore, the framework is inclined not to inject overly complex tag content, associated attributes, or methods into model structures and consistently tries to simplify the design with the goal of making model association queries as understandable and easy to use as possible. Before learning more about the `With` feature, it is recommended to first understand [Model Association - Dynamic Association - ScanList](模型关联-动态关联-ScanList.md). +Everyone knows that usability and maintainability have always been the focus of `goframe`, and it's also a significant difference between `goframe` and other frameworks and components. `goframe` does not adopt other common `ORM` model association designs like `BelongsTo`, `HasOne`, `HasMany`, `ManyToMany`, which are cumbersome to maintain due to foreign key constraints, additional tag annotations, etc., imposing a certain cognitive load on developers. Therefore, the framework is inclined not to inject overly complex tag content, associated attributes, or methods into model structures and consistently tries to simplify the design with the goal of making model association queries as understandable and easy to use as possible. Before learning more about the `With` feature, it is recommended to first understand [Model Association - ScanList](模型关联-动态关联-ScanList.md). Through a series of project practices, we found that although `ScanList` maintains model associations from a runtime business logic perspective, this association maintenance is not as straightforward as expected. Therefore, we continue to improve and introduce the `With` model association feature, which can easily maintain the association relationships through models. Of course, this feature is still dedicated to enhancing the usability and maintainability of the overall framework, and it can be seen as a combination and improvement of `ScanList` and model association maintenance. @@ -360,7 +360,7 @@ type UserDetail struct { } ``` -Within the `GoFrame` framework, there are many such small component packages for implementing specific functions. The `gmeta` package is mainly used to embed into user-defined structures, and using tags to mark the struct (like `g.Meta`) in the `gmeta` package with custom tag content (such as `` `orm:"table:user_detail"` ``), and can dynamically obtain these custom tag contents with specific methods at runtime. For more details, refer to the chapter: [Metadata - gmeta](../../../../组件列表/实用工具/元数据-gmeta.md). +Within the `GoFrame` framework, there are many such small component packages for implementing specific functions. The `gmeta` package is mainly used to embed into user-defined structures, and using tags to mark the struct (like `g.Meta`) in the `gmeta` package with custom tag content (such as `` `orm:"table:user_detail"` ``), and can dynamically obtain these custom tag contents with specific methods at runtime. For more details, refer to the chapter: [Metadata](../../../../组件列表/实用工具/元数据-gmeta.md). Therefore, embedding `g.Meta` here is to label the data table name associated with the struct. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\346\227\245\345\277\227\350\276\223\345\207\272.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\346\227\245\345\277\227\350\276\223\345\207\272.md" index 317ff15658f..5a6f83d02e6 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\346\227\245\345\277\227\350\276\223\345\207\272.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\346\227\245\345\277\227\350\276\223\345\207\272.md" @@ -9,7 +9,7 @@ description: "The log output functionality of the ORM component in the GoFrame f :::danger The output of `ORM` logs is formatted and displayed for reading and debugging before submitting to the underlying database `driver`. It formats and prints the chain operations or templates and execution parameters composed of `SQL`. Since the underlying `driver` may perform a secondary conversion of the submitted parameters, the log output here is for reference only and does not fully represent the actual SQL statements executed by the underlying layer. ::: -Log output often prints some debugging or `SQL` statements. The log object can be set via the `SetLogger/GetLogger` methods or configured in a configuration file. Please refer to the [ORM Configuration Usage](../ORM使用配置/ORM使用配置.md) section for log configuration. Below is a configuration example with log output enabled: +Log output often prints some debugging or `SQL` statements. The log object can be set via the `SetLogger/GetLogger` methods or configured in a configuration file. Please refer to the [ORM - Configuration](../ORM使用配置/ORM使用配置.md) section for log configuration. Below is a configuration example with log output enabled: ```yaml database: @@ -41,6 +41,6 @@ As you can see, the log contains the following parts of information: 1. Date and time, accurate to the millisecond. 2. Log level. Since `SQL` logs are mainly used for function debugging/problem troubleshooting, it is often necessary to turn them off in a production environment. Therefore, the log level is fixed to the `DEBUG` level. 3. The execution time of the current `SQL`, from when the client makes a request to when the data is received, in milliseconds. If the execution time is less than `1` millisecond, it is displayed as `0` milliseconds. -4. The database configuration group where the current `SQL` is located, default is `default`. For an introduction to configuration groups, please refer to the section: [ORM Configuration Usage](../ORM使用配置/ORM使用配置.md). -5. The **Transaction ID** to which the current `SQL` belongs. If the current `SQL` does not belong to a transaction operation, this field is not present. For an introduction to Transaction IDs, please refer to the section: [ORM Transaction Processing](../ORM事务处理/ORM事务处理.md). +4. The database configuration group where the current `SQL` is located, default is `default`. For an introduction to configuration groups, please refer to the section: [ORM - Configuration](../ORM使用配置/ORM使用配置.md). +5. The **Transaction ID** to which the current `SQL` belongs. If the current `SQL` does not belong to a transaction operation, this field is not present. For an introduction to Transaction IDs, please refer to the section: [ORM - Transaction](../ORM事务处理/ORM事务处理.md). 6. The specific `SQL` statement executed. It should be noted that since `SQL` pre-processing is used at the bottom, the `SQL` statement here is the result of automatic splicing by the component and is for reference only. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\347\261\273\345\236\213\350\275\254\346\215\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\347\261\273\345\236\213\350\275\254\346\215\242.md" index 76f4bbdb043..b276e2f57a4 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\347\261\273\345\236\213\350\275\254\346\215\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\347\261\273\345\236\213\350\275\254\346\215\242.md" @@ -9,7 +9,7 @@ description: "Using the gdb module in the GoFrame framework to achieve advanced The data record result (`Value`) of `gdb` supports very flexible type conversion and has built-in support for dozens of common data types. -> The `Value` type is an alias for the `*gvar.Var` type, so you can use all the conversion methods of the `gvar.Var` data type. For details, please refer to the [Generic Type-gvar](../../../组件列表/数据结构/泛型类型-gvar/泛型类型-gvar.md) section. +> The `Value` type is an alias for the `*gvar.Var` type, so you can use all the conversion methods of the `gvar.Var` data type. For details, please refer to the [Generic](../../../组件列表/数据结构/泛型类型-gvar/泛型类型-gvar.md) section. Example usage: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213\350\275\254\346\215\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213\350\275\254\346\215\242.md" index 2b0531f8043..a75b456731d 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213\350\275\254\346\215\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\345\272\223ORM/ORM\351\253\230\347\272\247\347\211\271\346\200\247/ORM\351\253\230\347\272\247\347\211\271\346\200\247-\350\207\252\345\256\232\344\271\211\347\261\273\345\236\213\350\275\254\346\215\242.md" @@ -7,4 +7,4 @@ description: "Utilize the custom type conversion features of ORM in the GoFrame keywords: [GoFrame, GoFrame framework, ORM, custom type conversion, type conversion interface, query result processing, flexible expansion, efficient solutions, struct attributes, UnmarshalValue] --- -When we need to convert query results into custom types, whether as directly converted types or as attributes of a `struct`, we can achieve this by implementing specific interfaces. For detailed information, please refer to the [Type Conversion - UnmarshalValue](../../类型转换/类型转换-UnmarshalValue.md) section. \ No newline at end of file +When we need to convert query results into custom types, whether as directly converted types or as attributes of a `struct`, we can achieve this by implementing specific interfaces. For detailed information, please refer to the [Type Conversion - Interface](../../类型转换/类型转换-UnmarshalValue.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Map\346\240\241\351\252\214/Map\346\240\241\351\252\214-\346\240\241\351\252\214\351\241\272\345\272\217\346\200\247.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Map\346\240\241\351\252\214/Map\346\240\241\351\252\214-\346\240\241\351\252\214\351\241\272\345\272\217\346\200\247.md" index 365e94cad22..a4a18ac6960 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Map\346\240\241\351\252\214/Map\346\240\241\351\252\214-\346\240\241\351\252\214\351\241\272\345\272\217\346\200\247.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Map\346\240\241\351\252\214/Map\346\240\241\351\252\214-\346\240\241\351\252\214\351\241\272\345\272\217\346\200\247.md" @@ -55,4 +55,4 @@ passport map[length:账号长度应当在6到16之间 required:账号不能为 账号不能为空 ``` -As you can see, if we want the validation results to maintain order, we just need to change the type of the `rules` parameter to `[]string` and set them according to a certain rule. Furthermore, the `msgs` parameter can be defined directly in the `rules` parameter or passed separately (using a third parameter). For detailed rules on writing validation rules in `rules`, please refer to the chapter [Struct Validation - Basic Usage](../数据校验-Struct校验/Struct校验-基本使用.md). \ No newline at end of file +As you can see, if we want the validation results to maintain order, we just need to change the type of the `rules` parameter to `[]string` and set them according to a certain rule. Furthermore, the `msgs` parameter can be defined directly in the `rules` parameter or passed separately (using a third parameter). For detailed rules on writing validation rules in `rules`, please refer to the chapter [Struct Validation - Example](../数据校验-Struct校验/Struct校验-基本使用.md). \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Struct\346\240\241\351\252\214/Struct\346\240\241\351\252\214-\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Struct\346\240\241\351\252\214/Struct\346\240\241\351\252\214-\345\237\272\346\234\254\344\275\277\347\224\250.md" index 60cdc55ff45..ace37ba0642 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Struct\346\240\241\351\252\214/Struct\346\240\241\351\252\214-\345\237\272\346\234\254\344\275\277\347\224\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\217\202\346\225\260\347\261\273\345\236\213/\346\225\260\346\215\256\346\240\241\351\252\214-Struct\346\240\241\351\252\214/Struct\346\240\241\351\252\214-\345\237\272\346\234\254\344\275\277\347\224\250.md" @@ -222,4 +222,4 @@ Once executed, the terminal output is: } ``` -For more introductions on recursive validation, please refer to the section: [Data Validation - Recursive Validation](../../数据校验-递归校验.md) \ No newline at end of file +For more introductions on recursive validation, please refer to the section: [Data Validation - Recursive](../../数据校验-递归校验.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\270\270\350\247\201\351\227\256\351\242\230.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\270\270\350\247\201\351\227\256\351\242\230.md" index e2f3852a6ba..db98ae62a93 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\270\270\350\247\201\351\227\256\351\242\230.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\345\270\270\350\247\201\351\227\256\351\242\230.md" @@ -24,4 +24,4 @@ There are **three** solutions: 1. Change the attribute to a pointer type, such as `*int`, `*float64`, `*g.Var`, etc., taking advantage of the pointer type's default value of `nil` to bypass this issue. 2. Use a combined validation rule to compensate for the impact of default values on the `required` rule. For example, modifying the validation rule of the `Age` attribute in the example above to `required|min:1` will achieve the desired business validation effect. -3. Use the `Assoc` joint validation method in `Struct` validation to set joint validation parameters. When validating parameters of the `Struct` type, the parameter values will be validated according to the parameters given in the `Assoc` method. If using the framework's `Server`, with structured `API` input/output (`XxxReq/XxxRes`), the `Server` will automatically call `Assoc` for validation, so developers need not worry about the impact of default values. Documentation link: [Struct Validation - Assoc Association](数据校验-参数类型/数据校验-Struct校验/Struct校验-Assoc关联.md) \ No newline at end of file +3. Use the `Assoc` joint validation method in `Struct` validation to set joint validation parameters. When validating parameters of the `Struct` type, the parameter values will be validated according to the parameters given in the `Assoc` method. If using the framework's `Server`, with structured `API` input/output (`XxxReq/XxxRes`), the `Server` will automatically call `Assoc` for validation, so developers need not worry about the impact of default values. Documentation link: [Struct Validation - Assoc](数据校验-参数类型/数据校验-Struct校验/Struct校验-Assoc关联.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\345\257\271\350\261\241.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\345\257\271\350\261\241.md" index 4c6c670516d..7cc6228fc51 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\345\257\271\350\261\241.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\345\257\271\350\261\241.md" @@ -41,7 +41,7 @@ type Validator 8. The `Rules` method is used to pass custom validation rules for the current chained operation, often using `[]string` type or `map` type. 9. The `Messages` method is used to pass custom error messages for the current chained operation, often using `map` type for passing; see subsequent code examples for details. :::tip -Since the validator object is also a very commonly used object, the `g` module defines the `Validator` method for quickly creating validator objects. In most scenarios, we recommend using the `g` module's `g.Validator()` method to quickly create a validator object. For an introduction to the `g` module, refer to the section: [Object Management](../对象管理.md) +Since the validator object is also a very commonly used object, the `g` module defines the `Validator` method for quickly creating validator objects. In most scenarios, we recommend using the `g` module's `g.Validator()` method to quickly create a validator object. For an introduction to the `g` module, refer to the section: [Objects](../对象管理.md) ::: ## Usage Examples diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\350\247\204\345\210\231.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\350\247\204\345\210\231.md" index 82e958b95d1..baf4901b99d 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\350\247\204\345\210\231.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\346\240\241\351\252\214\350\247\204\345\210\231.md" @@ -452,7 +452,7 @@ Functional rules implement specific validation logic, with the framework providi ### `date-format` - Format: `date-format:format` -- Description: Checks whether the date is in the specified date/time format, with the `format` parameter in `gtime` date format (can include date and time), format description refer to section: [gtime Module](../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) +- Description: Checks whether the date is in the specified date/time format, with the `format` parameter in `gtime` date format (can include date and time), format description refer to section: [Time](../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) - Example: `date-format:Y-m-d H:i:s` ```go @@ -644,7 +644,7 @@ Functional rules implement specific validation logic, with the framework providi ### `enums` - Format: `enums` -- Description: Validates whether the submitted parameter is within the enum values of the field type. This rule needs to be used in conjunction with the `gf gen enums` command, for more details refer to: [Enums Maintenance-gen enums](../../开发工具/代码生成-gen/枚举维护-gen%20enums.md) +- Description: Validates whether the submitted parameter is within the enum values of the field type. This rule needs to be used in conjunction with the `gf gen enums` command, for more details refer to: [Enums Maintenance](../../开发工具/代码生成-gen/枚举维护-gen%20enums.md) ```go func ExampleRule_Enums() { diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\350\207\252\345\256\232\344\271\211\351\224\231\350\257\257.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\350\207\252\345\256\232\344\271\211\351\224\231\350\257\257.md" index 683df67040d..b7bb58aa343 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\350\207\252\345\256\232\344\271\211\351\224\231\350\257\257.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\225\260\346\215\256\346\240\241\351\252\214/\346\225\260\346\215\256\346\240\241\351\252\214-\350\207\252\345\256\232\344\271\211\351\224\231\350\257\257.md" @@ -9,7 +9,7 @@ description: "When using the data validation component of the GoFrame framework, The data validation component supports the `i18n` feature, implemented internally using the unified `i18n` component of the `goframe` framework. By default, it uses the default `i18n` singleton object, i.e., the `g.I18n()` object. -Before further use, please refer to the chapter on configuring and using the `i18n` internationalization feature: [I18N Internationalization](../I18N国际化/I18N国际化.md) +Before further use, please refer to the chapter on configuring and using the `i18n` internationalization feature: [I18N](../I18N国际化/I18N国际化.md) ## Configuration Example diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Context.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Context.md" index 8f8b73cc946..bce5d3cf251 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Context.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Context.md" @@ -73,10 +73,10 @@ Stack: ## Delivery to `Handler` -If a developer customizes a `Handler` for the log object, each `ctx` context variable passed during log printing will be delivered to the `Handler`. For an introduction to log `Handler`, please refer to the section: [Log Component-Handler](日志组件-Handler.md) +If a developer customizes a `Handler` for the log object, each `ctx` context variable passed during log printing will be delivered to the `Handler`. For an introduction to log `Handler`, please refer to the section: [Logging - Handler](日志组件-Handler.md) ## Trace Support -The `glog` component supports the OpenTelemetry standard trace feature, which is built-in and requires no setup from the developer. For more information, please refer to the section: [Service Trace](../../服务可观测性/服务链路跟踪/服务链路跟踪.md) +The `glog` component supports the OpenTelemetry standard trace feature, which is built-in and requires no setup from the developer. For more information, please refer to the section: [Service Tracing](../../服务可观测性/服务链路跟踪/服务链路跟踪.md) ![](/markdown/a6ade54c58ba067b6be203a6e17b15e5.png) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Writer\346\216\245\345\217\243.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Writer\346\216\245\345\217\243.md" index 952a3ffc7a5..04a8a8d77c1 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Writer\346\216\245\345\217\243.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-Writer\346\216\245\345\217\243.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, GoFrame Framework, Log Component, Writer Interface, Custom L description: "Use the Writer interface of the glog module in the GoFrame framework to customize log output. By implementing a custom Writer object, logs can be flexibly output to different targets such as files, standard output, and Graylog. Additionally, sample code is provided to demonstrate how to implement log HOOK functionality to promptly notify monitoring services of serious errors." --- :::tip -The `Writer` interface is the lowest-level `IO` writing interface. If your business needs to customize the log content printing, it is recommended to use the `Handler` feature. Refer to the section: [Log Component - Handler](日志组件-Handler.md) +The `Writer` interface is the lowest-level `IO` writing interface. If your business needs to customize the log content printing, it is recommended to use the `Handler` feature. Refer to the section: [Logging - Handler](日志组件-Handler.md) ::: ## Custom `Writer` Interface diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\346\226\207\344\273\266\347\233\256\345\275\225.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\346\226\207\344\273\266\347\233\256\345\275\225.md" index 8d5f63db621..8fee9822eab 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\346\226\207\344\273\266\347\233\256\345\275\225.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\346\226\207\344\273\266\347\233\256\345\275\225.md" @@ -9,7 +9,7 @@ description: "Use the logging component in the GoFrame framework to set the name ## Log Files -By default, log file names are named with the current date and time, formatted as `YYYY-MM-DD.log`. We can use the `SetFile` method to set the format of the file name, and the file name format supports [Time Management - gtime](../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) time format. Simple example: +By default, log file names are named with the current date and time, formatted as `YYYY-MM-DD.log`. We can use the `SetFile` method to set the format of the file name, and the file name format supports [Time](../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) time format. Simple example: ```go package main diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\351\205\215\347\275\256\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\351\205\215\347\275\256\347\256\241\347\220\206.md" index 1d5faca42f2..3e3844c7d70 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\351\205\215\347\275\256\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266-\351\205\215\347\275\256\347\256\241\347\220\206.md" @@ -11,7 +11,7 @@ The log component is one of the core components of the `GoFrame` framework, supp ## Configuration File (Recommended) :::tip -The log configuration uses the unified configuration component of the framework, supporting multiple file formats, as well as configuration centers and interface-based extensions. For more details, please refer to the section: [Configuration Management](../配置管理/配置管理.md) +The log configuration uses the unified configuration component of the framework, supporting multiple file formats, as well as configuration centers and interface-based extensions. For more details, please refer to the section: [Configuration](../配置管理/配置管理.md) ::: The log component supports configuration files. When using `g.Log(instance name)` to obtain the `Logger` instance object, it will automatically obtain the corresponding `Logger` configuration through the default configuration management object. By default, it will read the `logger.instance name` configuration item. If this configuration item does not exist, it will read the default `logger` configuration item. Please refer to the configuration object structure definition for configuration items: [https://pkg.go.dev/github.com/gogf/gf/v2/os/glog#Config](https://pkg.go.dev/github.com/gogf/gf/v2/os/glog#Config) @@ -37,7 +37,7 @@ logger: writerColorEnable: false # Whether the log file is colored. Default is false, indicating no color ``` -Among them, the `level` configuration item is configured using a string and supports the following configurations according to log levels: `DEBU` < `INFO` < `NOTI` < `WARN` < `ERRO` < `CRIT`, and also supports common deployment mode configuration names such as `ALL`, `DEV`, `PROD`. The `level` configuration item string is not case-sensitive. For a detailed introduction to log levels, please refer to the section [Log Component - Log Levels](日志组件-日志级别.md). +Among them, the `level` configuration item is configured using a string and supports the following configurations according to log levels: `DEBU` < `INFO` < `NOTI` < `WARN` < `ERRO` < `CRIT`, and also supports common deployment mode configuration names such as `ALL`, `DEV`, `PROD`. The `level` configuration item string is not case-sensitive. For a detailed introduction to log levels, please refer to the section [Logging - Log Level](日志组件-日志级别.md). ### Example 1, Default Configuration Items @@ -94,7 +94,7 @@ Brief explanation: 2. You can also use the `Set*` methods of the `Logger` object for specific configurations. 3. It should be noted that configuration items should be set before the `Logger` object executes log output to avoid concurrent safety issues. -We can use the `SetConfigWithMap` method to set/modify specific configurations of the `Logger` through `Key-Value` pairs, while other configurations use the default configuration. The name of the `Key` is the attribute name in the `Config` `struct`, and it is case-insensitive, supporting `-`/ `_`/ space symbols between words. For details, please refer to the conversion rules in the section [Type Conversion - Struct Conversion](../类型转换/类型转换-Struct转换.md). +We can use the `SetConfigWithMap` method to set/modify specific configurations of the `Logger` through `Key-Value` pairs, while other configurations use the default configuration. The name of the `Key` is the attribute name in the `Config` `struct`, and it is case-insensitive, supporting `-`/ `_`/ space symbols between words. For details, please refer to the conversion rules in the section [Type Conversion - Struct](../类型转换/类型转换-Struct转换.md). Simple example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266.md" index 892c86d290b..4209b227786 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266/\346\227\245\345\277\227\347\273\204\344\273\266.md" @@ -68,7 +68,7 @@ The log component supports the singleton pattern, using `g.Log(singleton name)` **Answer**: -Since each component of the framework is **decoupled**, the framework **can be used as an independent tool library**. For example, if the project only needs to use the log component, you can directly use the methods of the `glog` package, without introducing other components. However, in project engineering use, the use of the tool library may be more cumbersome, often involving configuration and component initialization (in most cases, this will lead to secondary encapsulation). Therefore, the framework also provides a **coupled package** called the `g` package. This package loads some commonly used components by default. `g.Log()` is one of the log components, which will automatically read and initialize the configuration object according to engineering specifications, quickly initialize the log object and achieve singleton management, greatly simplifying the use of logs under engineering. For more introductions, please refer to: [Object Management](../对象管理.md) +Since each component of the framework is **decoupled**, the framework **can be used as an independent tool library**. For example, if the project only needs to use the log component, you can directly use the methods of the `glog` package, without introducing other components. However, in project engineering use, the use of the tool library may be more cumbersome, often involving configuration and component initialization (in most cases, this will lead to secondary encapsulation). Therefore, the framework also provides a **coupled package** called the `g` package. This package loads some commonly used components by default. `g.Log()` is one of the log components, which will automatically read and initialize the configuration object according to engineering specifications, quickly initialize the log object and achieve singleton management, greatly simplifying the use of logs under engineering. For more introductions, please refer to: [Objects](../对象管理.md) ::: ## Documents diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\207\275\346\225\260/\346\250\241\346\235\277\345\207\275\346\225\260-\345\206\205\347\275\256\345\207\275\346\225\260.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\207\275\346\225\260/\346\250\241\346\235\277\345\207\275\346\225\260-\345\206\205\347\275\256\345\207\275\346\225\260.md" index b22909da09d..2c08bf4d5c3 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\207\275\346\225\260/\346\250\241\346\235\277\345\207\275\346\225\260-\345\206\205\347\275\256\345\207\275\346\225\260.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\207\275\346\225\260/\346\250\241\346\235\277\345\207\275\346\225\260-\345\206\205\347\275\256\345\207\275\346\225\260.md" @@ -92,7 +92,7 @@ Decodes the `URL` encoded `url` variable. Example: {{date .format}} ``` -Formats the `timestamp` variable into a date and time, similar to PHP's `date` method. The `format` parameter supports [PHP date](http://php.net/manual/en/function.date.php) format. Additionally, refer to [Time Management - gtime](../../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md). +Formats the `timestamp` variable into a date and time, similar to PHP's `date` method. The `format` parameter supports [PHP date](http://php.net/manual/en/function.date.php) format. Additionally, refer to [Time](../../../组件列表/系统相关/时间管理-gtime/时间管理-gtime.md). When `timestamp` is `null` (or `0`), the current time is used as the timestamp parameter. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\217\230\351\207\217.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\217\230\351\207\217.md" index 530202a82d6..e3d1a9d2e18 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\217\230\351\207\217.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\345\217\230\351\207\217.md" @@ -9,7 +9,7 @@ description: "How to use custom objects as template variables in the template en ## Built-in Variables -Please refer to the [Data Return - Template Parsing](../../WEB服务开发/数据返回/数据返回-模板解析.md) section for `WebServer` built-in variables. +Please refer to the [Response - Template Parsing](../../WEB服务开发/数据返回/数据返回-模板解析.md) section for `WebServer` built-in variables. ## Variable Objects diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\351\205\215\347\275\256.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\351\205\215\347\275\256.md" index 870b1483b02..3ed7df819a3 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\351\205\215\347\275\256.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\346\250\241\346\235\277\345\274\225\346\223\216/\346\250\241\346\235\277\345\274\225\346\223\216-\346\250\241\346\235\277\351\205\215\347\275\256.md" @@ -89,7 +89,7 @@ Brief introduction: ### `SetConfigWithMap` Method -We can use the `SetConfigWithMap` method to set/modify specific configurations of the `View` using `Key-Value` pairs, while the remaining configurations use the default configuration. The `Key` name is the attribute name in the `Config` struct, which is case-insensitive, and it supports using `-`/ `_`/ `space` symbols between words. Refer to the [Type Conversion-Struct Conversion](../类型转换/类型转换-Struct转换.md) section for conversion rules. +We can use the `SetConfigWithMap` method to set/modify specific configurations of the `View` using `Key-Value` pairs, while the remaining configurations use the default configuration. The `Key` name is the attribute name in the `Config` struct, which is case-insensitive, and it supports using `-`/ `_`/ `space` symbols between words. Refer to the [Type Conversion - Struct](../类型转换/类型转换-Struct转换.md) section for conversion rules. Simple example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242-Structs\350\275\254\346\215\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242-Structs\350\275\254\346\215\242.md" index 66c91ba3b4b..38c6e0ba1c5 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242-Structs\350\275\254\346\215\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242-Structs\350\275\254\346\215\242.md" @@ -9,7 +9,7 @@ description: "Type conversion methods in the GoFrame framework, focusing on usin ## Introduction -As previously mentioned, the `Struct` method can be used for the conversion of `struct` objects; similarly, the conversion of `struct` arrays is achieved using the `Structs` method. The `Structs` method is built upon the `Struct` method, and all conversion rules are the same as `Struct`, with additional support for `struct` array types. Before understanding the `Structs` method, it is recommended to first understand the introduction to the `Struct` method: [Type Conversion - Struct Conversion](类型转换-Struct转换.md) +As previously mentioned, the `Struct` method can be used for the conversion of `struct` objects; similarly, the conversion of `struct` arrays is achieved using the `Structs` method. The `Structs` method is built upon the `Struct` method, and all conversion rules are the same as `Struct`, with additional support for `struct` array types. Before understanding the `Structs` method, it is recommended to first understand the introduction to the `Struct` method: [Type Conversion - Struct](类型转换-Struct转换.md) ## Method Definition diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242.md" index 4a571ab5aef..f3899bbc3aa 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\261\273\345\236\213\350\275\254\346\215\242/\347\261\273\345\236\213\350\275\254\346\215\242.md" @@ -29,7 +29,7 @@ import "github.com/gogf/gf/v2/util/gconv" The method list may lag behind the code, please refer to the API documentation for details. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\274\223\345\255\230\347\256\241\347\220\206/\347\274\223\345\255\230\347\256\241\347\220\206-\346\216\245\345\217\243\350\256\276\350\256\241.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\274\223\345\255\230\347\256\241\347\220\206/\347\274\223\345\255\230\347\256\241\347\220\206-\346\216\245\345\217\243\350\256\276\350\256\241.md" index 937604340d2..bea310ddf97 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\274\223\345\255\230\347\256\241\347\220\206/\347\274\223\345\255\230\347\256\241\347\220\206-\346\216\245\345\217\243\350\256\276\350\256\241.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\347\274\223\345\255\230\347\256\241\347\220\206/\347\274\223\345\255\230\347\256\241\347\220\206-\346\216\245\345\217\243\350\256\276\350\256\241.md" @@ -26,7 +26,7 @@ This method applies the implemented `adapter` to the corresponding `Cache` objec func (c *Cache) SetAdapter(adapter Adapter) ``` -For specific examples, please refer to the [Cache Management - Redis Cache](缓存管理-Redis缓存.md) section. +For specific examples, please refer to the [Caching - Redis](缓存管理-Redis缓存.md) section. ## Obtaining Interface Implementation @@ -37,4 +37,4 @@ This method retrieves the currently registered `adapter` interface implementatio func (c *Cache) GetAdapter() Adapter ``` -For specific examples, please refer to the [Cache Management - Redis Cache](缓存管理-Redis缓存.md) section. \ No newline at end of file +For specific examples, please refer to the [Caching - Redis](缓存管理-Redis缓存.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\345\267\245\345\205\267\346\211\223\345\214\205.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\345\267\245\345\205\267\346\211\223\345\214\205.md" index 9818fb522f9..24dd3689aeb 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\345\267\245\345\205\267\346\211\223\345\214\205.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\345\267\245\345\205\267\346\211\223\345\214\205.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, GoFrame framework, gf command line tool, resource packaging, description: "Use the gf command line tool in the GoFrame framework for resource packaging. The gf pack command can package the project's config, public, and template directories into Go files, and the generated files are automatically introduced into the project. The packed resource package is preferentially introduced in the boot package, and the packaged resource files are operated through the gres module. The gres.Dump() method can print the resource file list for easy management and debugging." --- -We can package any files/directories using the `pack` command of the `gf` command line tool. For specific installation and usage of the `gf` command line tool, please refer to the [Resource Packaging - Pack](../../开发工具/资源打包-pack.md) section. Since it is quite convenient to package using the command line tool, it is the recommended packaging method. +We can package any files/directories using the `pack` command of the `gf` command line tool. For specific installation and usage of the `gf` command line tool, please refer to the [Resource Packing](../../开发工具/资源打包-pack.md) section. Since it is quite convenient to package using the command line tool, it is the recommended packaging method. ## `gf pack` Generates `Go` File diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\346\234\200\344\275\263\345\256\236\350\267\265.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\346\234\200\344\275\263\345\256\236\350\267\265.md" index 1ecfa8ddd2c..ce2cf317dbc 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\346\234\200\344\275\263\345\256\236\350\267\265.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206-\346\234\200\344\275\263\345\256\236\350\267\265.md" @@ -21,7 +21,7 @@ During the development phase, generally, developers do not need to care about re ## Prepare for Release -After development is complete, if you wish to package static files, template files, and configuration files into the binary executable file for release alongside it, the resource component will now begin to showcase its capability. You need to configure cross-compilation settings, specifically refer to the command line section [Cross Compilation-build](../../开发工具/交叉编译-build.md). We need to use the CLI tool to execute executable file compilation, managing your compile configuration through a configuration file (placed in the hack/config.yaml file). A reference compile configuration is as follows: +After development is complete, if you wish to package static files, template files, and configuration files into the binary executable file for release alongside it, the resource component will now begin to showcase its capability. You need to configure cross-compilation settings, specifically refer to the command line section [Cross-Compiling](../../开发工具/交叉编译-build.md). We need to use the CLI tool to execute executable file compilation, managing your compile configuration through a configuration file (placed in the hack/config.yaml file). A reference compile configuration is as follows: ``` gfcli: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206.md" index a93b80b0adf..c151806ac7c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\350\265\204\346\272\220\347\256\241\347\220\206/\350\265\204\346\272\220\347\256\241\347\220\206.md" @@ -37,7 +37,7 @@ The `gres` resource management component has the following notable features: ## Comparison with `embed.FS` -Starting from `Golang v1.16`, the official release provides a static file embedding feature `embed.FS`. The overall underlying design is similar to the `gres` component, with comparable compression rates and execution efficiency, although there are significant differences in usage design and engineering management. The `GoFrame` resource management component is more feature-rich, and the core components of the framework have been fully integrated with the `gres` resource management component. Under GoFrame's standard engineering management, developers can seamlessly use the resource management features without being aware of them. For details, see the chapter [Resource Management - Best Practices](资源管理-最佳实践.md). +Starting from `Golang v1.16`, the official release provides a static file embedding feature `embed.FS`. The overall underlying design is similar to the `gres` component, with comparable compression rates and execution efficiency, although there are significant differences in usage design and engineering management. The `GoFrame` resource management component is more feature-rich, and the core components of the framework have been fully integrated with the `gres` resource management component. Under GoFrame's standard engineering management, developers can seamlessly use the resource management features without being aware of them. For details, see the chapter [Resource - Best Practices](资源管理-最佳实践.md). In the future, the GoFrame base framework will not consider built-in support for the `embed.FS` component. `embed.FS` and the `gres` component can be independently used without affecting each other. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\345\270\270\347\224\250\346\226\271\346\263\225.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\345\270\270\347\224\250\346\226\271\346\263\225.md" index c6a574cdf77..cb472835511 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\345\270\270\347\224\250\346\226\271\346\263\225.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\345\270\270\347\224\250\346\226\271\346\263\225.md" @@ -320,7 +320,7 @@ array = [1,2,3] ## `GetAdapter` -- Description: The `GetAdapter` method retrieves the current running `gcfg` adapter information. For more about adapters, you can click here [Configuration - Interface Design](./配置管理-接口化设计/配置管理-接口化设计.md) +- Description: The `GetAdapter` method retrieves the current running `gcfg` adapter information. For more about adapters, you can click here [Configuration - Interface](./配置管理-接口化设计/配置管理-接口化设计.md) - Format: ```go @@ -346,7 +346,7 @@ func ExampleConfig_GetAdapter() { ## `SetAdapter` -- Description: The `SetAdapter` method sets the current running `gcfg` adapter information. For more about adapters, you can click here [Configuration - Interface Design](./配置管理-接口化设计/配置管理-接口化设计.md) +- Description: The `SetAdapter` method sets the current running `gcfg` adapter information. For more about adapters, you can click here [Configuration - Interface](./配置管理-接口化设计/配置管理-接口化设计.md) - Format: ```go diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\346\226\207\344\273\266\351\205\215\347\275\256.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\346\226\207\344\273\266\351\205\215\347\275\256.md" index b170099625e..e4c5f97c630 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\346\226\207\344\273\266\351\205\215\347\275\256.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\240\270\345\277\203\347\273\204\344\273\266/\351\205\215\347\275\256\347\256\241\347\220\206/\351\205\215\347\275\256\347\256\241\347\220\206-\346\226\207\344\273\266\351\205\215\347\275\256.md" @@ -141,7 +141,7 @@ It is important to note that this configuration takes effect globally and has a ## Hierarchical Access -With the default file system interface implementation, the `gcfg` component supports accessing configuration data by hierarchy. Hierarchical access is specified by the English `.` by default, where the `pattern` parameter is consistent with the `pattern` parameter of [Common Encoding/Decoding - gjson](../../组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md). For example, the following configuration (`config.yaml`): +With the default file system interface implementation, the `gcfg` component supports accessing configuration data by hierarchy. Hierarchical access is specified by the English `.` by default, where the `pattern` parameter is consistent with the `pattern` parameter of [General Codec](../../组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md). For example, the following configuration (`config.yaml`): ```yaml server: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/Golang\346\236\232\344\270\276\345\200\274\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/Golang\346\236\232\344\270\276\345\200\274\347\256\241\347\220\206.md" index 53e2a3db5c3..23853a447b5 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/Golang\346\236\232\344\270\276\345\200\274\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/Golang\346\236\232\344\270\276\345\200\274\347\256\241\347\220\206.md" @@ -42,4 +42,4 @@ const ( It is relatively simple to use enum values internally within a project, as they can be defined and used internally. However, when it comes to cross-service calls or front-end and back-end collaboration, efficiency tends to be lower. When services need to demonstrate interface capabilities to external callers, an `API` interface document (or interface definition file, such as `proto`) often needs to be generated, and the client `SDK` for calling is often generated based on the interface document (file). -If it's an interface definition file, like `proto`, the problem can often be resolved by directly viewing the source code, so it's not a big issue. Here, we mainly discuss the problem of maintaining enum values in interface documents, particularly when maintaining enum values through the `OpenAPI` standard protocol during front-end and back-end collaboration. We provide specialized tools for maintaining these enum values, please refer to the chapter: [Enum Maintenance - gen enums](../开发工具/代码生成-gen/枚举维护-gen%20enums.md) \ No newline at end of file +If it's an interface definition file, like `proto`, the problem can often be resolved by directly viewing the source code, so it's not a big issue. Here, we mainly discuss the problem of maintaining enum values in interface documents, particularly when maintaining enum values through the `OpenAPI` standard protocol during front-end and back-end collaboration. We provide specialized tools for maintaining these enum values, please refer to the chapter: [Enums Maintenance](../开发工具/代码生成-gen/枚举维护-gen%20enums.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\344\273\243\347\240\201\345\210\206\345\261\202\350\256\276\350\256\241.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\344\273\243\347\240\201\345\210\206\345\261\202\350\256\276\350\256\241.md" index 91fd375505c..982196666bd 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\344\273\243\347\240\201\345\210\206\345\261\202\350\256\276\350\256\241.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\344\273\243\347\240\201\345\210\206\345\261\202\350\256\276\350\256\241.md" @@ -86,4 +86,4 @@ The evolution of software architecture, especially of internet software architec ::: ## 4. Further Understanding -The concept of code layering is the most fundamental aspect of engineering design. We need to implement the layering idea into practice, specifically refer to: [Engineering Directory Design🔥](工程目录设计.md) \ No newline at end of file +The concept of code layering is the most fundamental aspect of engineering design. We need to implement the layering idea into practice, specifically refer to: [Project Structure🔥](工程目录设计.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\267\245\347\250\213\347\233\256\345\275\225\350\256\276\350\256\241.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\267\245\347\250\213\347\233\256\345\275\225\350\256\276\350\256\241.md" index 779543ab65f..d8f1efd4c9c 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\267\245\347\250\213\347\233\256\345\275\225\350\256\276\350\256\241.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\267\245\347\250\213\347\233\256\345\275\225\350\256\276\350\256\241.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, project structure design, code layering, framework design, b description: "The method of project directory design in the GoFrame framework, based on the three-layer architecture model and improved with modern engineering practices to provide a universal and flexible directory structure design for complex business projects. Directory components include modules such as api, internal, dao, and logic, supporting various business scenarios while encouraging developers to flexibly add or remove directories for specific application implementations." --- -Project directory design is a further implementation of code layering design. It is recommended that you read carefully first: [Code Layering Design](代码分层设计.md) +Project directory design is a further implementation of code layering design. It is recommended that you read carefully first: [Code Layering](代码分层设计.md) :::tip This is a directory design for **business projects** with the `GoFrame` framework. The main idea originates from the three-layer architecture but has been improved and refined in practice to better fit engineering practices and modern advancements. ::: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\276\256\346\234\215\345\212\241\345\244\247\344\273\223\347\256\241\347\220\206\346\250\241\345\274\217.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\276\256\346\234\215\345\212\241\345\244\247\344\273\223\347\256\241\347\220\206\346\250\241\345\274\217.md" index e415f1ceebd..306ce5b7932 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\276\256\346\234\215\345\212\241\345\244\247\344\273\223\347\256\241\347\220\206\346\250\241\345\274\217.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\345\276\256\346\234\215\345\212\241\345\244\247\344\273\223\347\256\241\347\220\206\346\250\241\345\274\217.md" @@ -78,7 +78,7 @@ The framework provides commonly used commands to compile programs, build images, Compiles the program to generate binary files. -For more information, please refer to the documentation: [Cross Compilation - Build](../../开发工具/交叉编译-build.md) +For more information, please refer to the documentation: [Cross-Compiling](../../开发工具/交叉编译-build.md) - `make image` @@ -86,7 +86,7 @@ Compiles the program and builds the image, generating a `Docker` image. Use `make image TAG=xxx` to specify the tag name of the compiled image. -For more information, please refer to the documentation: [Image Compilation - Docker](../../开发工具/镜像编译-docker.md) +For more information, please refer to the documentation: [Image Building](../../开发工具/镜像编译-docker.md) - `make image.push` @@ -120,26 +120,26 @@ Used to upgrade the local framework `CLI` to the latest stable version. Used to upgrade the local framework to the latest stable version in the community. -For more information, please refer to the documentation: [Framework Upgrade - Up](../../开发工具/框架升级-up.md) +For more information, please refer to the documentation: [Version Upgrade](../../开发工具/框架升级-up.md) #### 3) `make dao` Used to generate `DAO/Entity/DO` code files. -For more information, please refer to the documentation: [Data Specification - Gen Dao](../../开发工具/代码生成-gen/数据规范-gen%20dao.md) +For more information, please refer to the documentation: [Dao/Do/Entity Generating](../../开发工具/代码生成-gen/数据规范-gen%20dao.md) #### 4) `make service` Parses the `logic` directory and automatically generates internal call interfaces. In `Goland IDE`, this command is often used in conjunction with an automated `Watcher` file change to auto-generate content; see the official documentation for details. -For more information, please refer to the documentation: [Module Specification - Gen Service](../../开发工具/代码生成-gen/模块规范-gen%20service.md) +For more information, please refer to the documentation: [Service Generating](../../开发工具/代码生成-gen/模块规范-gen%20service.md) #### 5) `make enums` Used to parse specified code directories (default is `api` directory) and auto-generate `enums` load code. -For more information, please refer to the documentation: [Enum Maintenance - Gen Enums](../../开发工具/代码生成-gen/枚举维护-gen%20enums.md) +For more information, please refer to the documentation: [Enums Maintenance](../../开发工具/代码生成-gen/枚举维护-gen%20enums.md) #### 6) More Commands -For more command support, please refer to the framework's official tools introduction section: [Development Tools](../../开发工具/开发工具.md) \ No newline at end of file +For more command support, please refer to the framework's official tools introduction section: [CLI Tool](../../开发工具/开发工具.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\346\225\260\346\215\256\346\250\241\345\236\213\344\270\216\344\270\232\345\212\241\346\250\241\345\236\213.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\346\225\260\346\215\256\346\250\241\345\236\213\344\270\216\344\270\232\345\212\241\346\250\241\345\236\213.md" index baf832e4530..8441b7acb4a 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\346\225\260\346\215\256\346\250\241\345\236\213\344\270\216\344\270\232\345\212\241\346\250\241\345\236\213.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\345\267\245\347\250\213\345\274\200\345\217\221\350\256\276\350\256\241/\346\225\260\346\215\256\346\250\241\345\236\213\344\270\216\344\270\232\345\212\241\346\250\241\345\236\213.md" @@ -7,7 +7,7 @@ keywords: [GoFrame, Data Model, Business Model, Interface Input/Output Model, Bu description: "Data models and business models in the GoFrame framework, including data models for databases like MySQL, Redis, and input/output models for interface interactions. Detailed explanation of the definition and usage of business input/output models, with a special introduction to the special business model DO integrated with the ORM component to simplify DAO data access operations." --- -In the previous section [Code Layering Design](代码分层设计.md), the concept of "**model**" was mentioned. +In the previous section [Code Layering](代码分层设计.md), the concept of "**model**" was mentioned. In this section, we will focus on introducing the definition and management of models in `GoFrame`. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\347\273\237\344\270\200\346\241\206\346\236\266\350\256\276\350\256\241.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\347\273\237\344\270\200\346\241\206\346\236\266\350\256\276\350\256\241.md" index e06ceed89b9..b793f2db0b0 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\347\273\237\344\270\200\346\241\206\346\236\266\350\256\276\350\256\241.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\346\241\206\346\236\266\350\256\276\350\256\241/\347\273\237\344\270\200\346\241\206\346\236\266\350\256\276\350\256\241.md" @@ -50,7 +50,7 @@ A fitting analogy: `GoFrame` is a highly disciplined, cohesive, and effective "r ![](/markdown/5f76d7bd6d1a06dce9641fec0c497b77.png) -Code level also requires a series of development standards, such as basic code structure, layering models, encapsulation design, etc. For specifics, please refer to: [Engineering Development Design (🔥Priority🔥)](工程开发设计/工程开发设计.md). A unified framework design ensures that all business projects are coded following a unified code design, forming uniform development standards. In addition, the framework's development toolchain makes it easier to quickly promote and implement development standards: [Development Tools](../开发工具/开发工具.md). +Code level also requires a series of development standards, such as basic code structure, layering models, encapsulation design, etc. For specifics, please refer to: [Engineering Design 🔥](工程开发设计/工程开发设计.md). A unified framework design ensures that all business projects are coded following a unified code design, forming uniform development standards. In addition, the framework's development toolchain makes it easier to quickly promote and implement development standards: [CLI Tool](../开发工具/开发工具.md). ## 3. Component Unification diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/I18N\347\273\204\344\273\266/\345\233\275\351\231\205\345\214\226-gi18n.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/I18N\347\273\204\344\273\266/\345\233\275\351\231\205\345\214\226-gi18n.md" index 31f2125bb83..cdad6a4c4d6 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/I18N\347\273\204\344\273\266/\345\233\275\351\231\205\345\214\226-gi18n.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/I18N\347\273\204\344\273\266/\345\233\275\351\231\205\345\214\226-gi18n.md" @@ -7,4 +7,4 @@ keywords: [GoFrame, GoFrame Framework, Internationalization, i18n, gi18n, Multil description: "When building a website using the GoFrame framework, we provide a powerful internationalization support module, gi18n, designed to simplify the implementation of multilingual web applications. In this way, developers can more efficiently meet the language needs of global users, enhancing user experience and product acceptability." --- -For details, please refer to the section: [I18N Internationalization](../../核心组件/I18N国际化/I18N国际化.md) \ No newline at end of file +For details, please refer to the section: [I18N](../../核心组件/I18N国际化/I18N国际化.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\345\256\236\347\224\250\345\267\245\345\205\267/\345\210\206\351\241\265\347\256\241\347\220\206-gpage.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\345\256\236\347\224\250\345\267\245\345\205\267/\345\210\206\351\241\265\347\256\241\347\220\206-gpage.md" index 335d2d342df..811fb304459 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\345\256\236\347\224\250\345\267\245\345\205\267/\345\210\206\351\241\265\347\256\241\347\220\206-gpage.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\345\256\236\347\224\250\345\267\245\345\205\267/\345\210\206\351\241\265\347\256\241\347\220\206-gpage.md" @@ -7,4 +7,4 @@ description: "This document explains how to use the gpage module of the GoFrame keywords: [GoFrame, GoFrame framework, gpage module, pagination management, WEB service development, gpage functionality, programming guide, module usage, developer tools, code optimization] --- -Pagination management is implemented by the `gpage` module. For more details, please refer to the [Pagination Management](../../WEB服务开发/分页管理/分页管理.md) section. \ No newline at end of file +Pagination management is implemented by the `gpage` module. For more details, please refer to the [Pagination](../../WEB服务开发/分页管理/分页管理.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\221\275\344\273\244\347\256\241\347\220\206-gcmd.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\221\275\344\273\244\347\256\241\347\220\206-gcmd.md" index 42f63e9774c..935bd2a21af 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\221\275\344\273\244\347\256\241\347\220\206-gcmd.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\221\275\344\273\244\347\256\241\347\220\206-gcmd.md" @@ -7,4 +7,4 @@ keywords: [GoFrame, GoFrame Framework, Command Management, gcmd, Core Component, description: "Use the command management component gcmd in the GoFrame framework for command line operations, including how to create and manage commands, execute commands, and configure command parameters. It is one of the core components of GoFrame, suitable for various development scenarios, improving development efficiency." --- -For details, please refer to the section: [Command Management](../../核心组件/命令管理/命令管理.md) \ No newline at end of file +For details, please refer to the section: [Command](../../核心组件/命令管理/命令管理.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron.md" index 7ceed326218..7d21196b563 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron.md" @@ -40,7 +40,7 @@ import "github.com/gogf/gf/v2/os/gcron" ## Notes -- Influence of Global Timezone: Scheduled tasks strictly depend on time calculation, so the global timezone of the process greatly affects scheduled task execution. When adding scheduled tasks, pay attention to the global timezone settings of the current process. If no global timezone is set, the system timezone is used by default. For more information on timezone settings, please refer to: [Time Management - Timezone Settings](../时间管理-gtime/时间管理-时区设置.md) +- Influence of Global Timezone: Scheduled tasks strictly depend on time calculation, so the global timezone of the process greatly affects scheduled task execution. When adding scheduled tasks, pay attention to the global timezone settings of the current process. If no global timezone is set, the system timezone is used by default. For more information on timezone settings, please refer to: [Time - Time Zone](../时间管理-gtime/时间管理-时区设置.md) ## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron\344\270\216gtimer.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron\344\270\216gtimer.md" index 4db017748eb..2f981a802f6 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron\344\270\216gtimer.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-gcron\344\270\216gtimer.md" @@ -9,7 +9,7 @@ description: "The difference between the scheduled task module gcron and the tim ## Difference between `gcron` and `gtimer` -Differences between [Scheduled Task-gcron](定时任务-gcron.md) and [Timer-gtimer](../定时器-gtimer/定时器-gtimer.md): +Differences between [Cron Job](定时任务-gcron.md) and [Timer](../定时器-gtimer/定时器-gtimer.md): - `gtimer` is a high-performance module, a core framework module, serving as the foundation for building any scheduled task, with method operation times measured in `nanoseconds`. - `gtimer` is applicable in any scheduled task scenario, such as TCP communication, game development, etc. @@ -18,5 +18,5 @@ Differences between [Scheduled Task-gcron](定时任务-gcron.md) and [Timer-gti | Similar Module | Description | Performance | Linux-like Crontab Pattern | Underlying Implementation | | --- | --- | --- | --- | --- | -| [Scheduled Task-gcron](定时任务-gcron.md) | Scheduled task.
Higher-level encapsulation, time scale in natural seconds. | General | Supported | Based on `gtimer` | -| [Timer-gtimer](../定时器-gtimer/定时器-gtimer.md) | Timer.
Low-level component, time scale in terms of time slots (customizable). | Efficient | Not supported | Custom implementation based on `PriorityQueue` data structure | \ No newline at end of file +| [Cron Job](定时任务-gcron.md) | Scheduled task.
Higher-level encapsulation, time scale in natural seconds. | General | Supported | Based on `gtimer` | +| [Timer](../定时器-gtimer/定时器-gtimer.md) | Timer.
Low-level component, time scale in terms of time slots (customizable). | Efficient | Not supported | Custom implementation based on `PriorityQueue` data structure | \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-\346\227\245\345\277\227\347\256\241\347\220\206.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-\346\227\245\345\277\227\347\256\241\347\220\206.md" index 348ea955b4e..254766e7497 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-\346\227\245\345\277\227\347\256\241\347\220\206.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\344\273\273\345\212\241-gcron/\345\256\232\346\227\266\344\273\273\345\212\241-\346\227\245\345\277\227\347\256\241\347\220\206.md" @@ -14,7 +14,7 @@ func SetLogger(logger glog.ILogger) func GetLogger() glog.ILogger ``` :::tip -For logging component features, please refer to the [Logging Component](../../../核心组件/日志组件/日志组件.md) section. +For logging component features, please refer to the [Logging](../../../核心组件/日志组件/日志组件.md) section. ::: Usage example: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\345\231\250-gtimer/\345\256\232\346\227\266\345\231\250-gtimer.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\345\231\250-gtimer/\345\256\232\346\227\266\345\231\250-gtimer.md" index 02bbeadc9e3..796c8a1dba7 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\345\231\250-gtimer/\345\256\232\346\227\266\345\231\250-gtimer.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\345\256\232\346\227\266\345\231\250-gtimer/\345\256\232\346\227\266\345\231\250-gtimer.md" @@ -62,9 +62,9 @@ It should be noted that the shorter the default detection interval of the timer, ## Difference Between Timer and `gcron` -Please refer to the section [Scheduled Task-gcron and gtimer](../定时任务-gcron/定时任务-gcron与gtimer.md) +Please refer to the section [Cron Job](../定时任务-gcron/定时任务-gcron与gtimer.md) -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify.md" index da0efdb7544..c6513121f48 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify/\346\226\207\344\273\266\347\233\221\346\216\247-gfsnotify.md" @@ -25,7 +25,7 @@ It is recommended to use the `Add` and `Remove` module methods provided by the ` Additionally, you can also create a watching management object using the `New` method and then perform watching management. When adding watching, you need to provide a callback function that triggers during watching, with the parameter type being a `*gfsnotify.Event` object pointer. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\245\345\277\227\347\256\241\347\220\206-glog.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\245\345\277\227\347\256\241\347\220\206-glog.md" index 730e7b0a31b..7d86756e3aa 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\245\345\277\227\347\256\241\347\220\206-glog.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\245\345\277\227\347\256\241\347\220\206-glog.md" @@ -7,4 +7,4 @@ description: "Implement the log management function through the glog module of t keywords: [GoFrame, GoFrame framework, glog module, log management, log function, log component, log recording, log processing, development framework, modular design] --- -The log management function is implemented by the `glog` module. For details, please refer to the [Log Component](../../核心组件/日志组件/日志组件.md) section. \ No newline at end of file +The log management function is implemented by the `glog` module. For details, please refer to the [Logging](../../核心组件/日志组件/日志组件.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\266\351\227\264\347\256\241\347\220\206-gtime/\346\227\266\351\227\264\347\256\241\347\220\206-\346\226\271\346\263\225\344\273\213\347\273\215.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\266\351\227\264\347\256\241\347\220\206-gtime/\346\227\266\351\227\264\347\256\241\347\220\206-\346\226\271\346\263\225\344\273\213\347\273\215.md" index d5b9a479aaa..b478f92ccea 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\266\351\227\264\347\256\241\347\220\206-gtime/\346\227\266\351\227\264\347\256\241\347\220\206-\346\226\271\346\263\225\344\273\213\347\273\215.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\346\227\266\351\227\264\347\256\241\347\220\206-gtime/\346\227\266\351\227\264\347\256\241\347\220\206-\346\226\271\346\263\225\344\273\213\347\273\215.md" @@ -68,7 +68,7 @@ func ExampleNow() { func (t *Time) Format(format string) string ``` -- Example: Format output time. The complete time format can be referred to in [Time Management - Time Format](时间管理-时间格式.md). +- Example: Format output time. The complete time format can be referred to in [Time - Format](时间管理-时间格式.md). ```go func ExampleTime_Format() { diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\347\274\223\345\255\230\347\256\241\347\220\206-gcache.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\347\274\223\345\255\230\347\256\241\347\220\206-gcache.md" index 473222aa659..8cffb6e6f58 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\347\274\223\345\255\230\347\256\241\347\220\206-gcache.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\347\274\223\345\255\230\347\256\241\347\220\206-gcache.md" @@ -7,4 +7,4 @@ keywords: [GoFrame, GoFrame Framework, gcache, Cache Management, Web Development description: "Implement cache management through the gcache module in the GoFrame framework. Learn how to use this module in your web development projects to improve performance and efficiency, and gain in-depth guidance on caching strategies, configuration, and best practices." --- -Cache management is implemented by the `gcache` module. For details, please refer to the [Cache Management](../../核心组件/缓存管理/缓存管理.md) section. \ No newline at end of file +Cache management is implemented by the `gcache` module. For details, please refer to the [Caching](../../核心组件/缓存管理/缓存管理.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\265\204\346\272\220\347\256\241\347\220\206-gres.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\265\204\346\272\220\347\256\241\347\220\206-gres.md" index 24c3e51486c..d0a3d37d8a6 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\265\204\346\272\220\347\256\241\347\220\206-gres.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\265\204\346\272\220\347\256\241\347\220\206-gres.md" @@ -7,4 +7,4 @@ description: "Resource management techniques in the GoFrame framework, discussin keywords: [resource management, GoFrame, gres module, component documentation, website performance, site resources, core components, module implementation, framework technology, performance optimization] --- -Resource management is implemented by the `gres` module. Please refer to the [Resource Management](../../核心组件/资源管理/资源管理.md) section for details. \ No newline at end of file +Resource management is implemented by the `gres` module. Please refer to the [Resource](../../核心组件/资源管理/资源管理.md) section for details. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\277\233\347\250\213\347\256\241\347\220\206-gproc/\350\277\233\347\250\213\347\256\241\347\220\206-gproc.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\277\233\347\250\213\347\256\241\347\220\206-gproc/\350\277\233\347\250\213\347\256\241\347\220\206-gproc.md" index 7b864455270..b503d1e8538 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\277\233\347\250\213\347\256\241\347\220\206-gproc/\350\277\233\347\250\213\347\256\241\347\220\206-gproc.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\350\277\233\347\250\213\347\256\241\347\220\206-gproc/\350\277\233\347\250\213\347\256\241\347\220\206-gproc.md" @@ -30,7 +30,7 @@ import "github.com/gogf/gf/v2/os/gproc" - `ShellRun` will directly output the return content to standard output after executing the command; - We can use `goroutine` to achieve asynchronous execution, such as: `go ShellRun(...)`, etc. -## Related Documents +## Documents import DocCardList from '@theme/DocCardList'; diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\351\205\215\347\275\256\347\256\241\347\220\206-gcfg.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\351\205\215\347\275\256\347\256\241\347\220\206-gcfg.md" index 10a1805f430..0e568c07dde 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\351\205\215\347\275\256\347\256\241\347\220\206-gcfg.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\347\263\273\347\273\237\347\233\270\345\205\263/\351\205\215\347\275\256\347\256\241\347\220\206-gcfg.md" @@ -7,4 +7,4 @@ keywords: [Configuration Management, GoFrame, gcfg module, core components, appl description: "Use the gcfg module in the GoFrame framework for configuration management. The gcfg module supports flexible application and system configuration, helping developers to manage and organize configuration files more efficiently, ensuring the stability and flexibility of the application." --- -Configuration management is implemented by the `gcfg` module. For details, please refer to the [Configuration Management](../../核心组件/配置管理/配置管理.md) section. \ No newline at end of file +Configuration management is implemented by the `gcfg` module. For details, please refer to the [Configuration](../../核心组件/配置管理/配置管理.md) section. \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\351\224\231\350\257\257\347\256\241\347\220\206/\351\224\231\350\257\257\347\240\201\346\216\245\345\217\243-gcode.md" "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\351\224\231\350\257\257\347\256\241\347\220\206/\351\224\231\350\257\257\347\240\201\346\216\245\345\217\243-gcode.md" index ccf8c26df4a..5a8680d152e 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\351\224\231\350\257\257\347\256\241\347\220\206/\351\224\231\350\257\257\347\240\201\346\216\245\345\217\243-gcode.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/docs/\347\273\204\344\273\266\345\210\227\350\241\250/\351\224\231\350\257\257\347\256\241\347\220\206/\351\224\231\350\257\257\347\240\201\346\216\245\345\217\243-gcode.md" @@ -7,4 +7,4 @@ keywords: [GoFrame,GoFrame Framework,Error Code Interface,Error Handling,Core Co description: "Learn about the error code interface gcode in the GoFrame framework and how to effectively handle errors in your project. This document provides a detailed introduction to the functionality and usage of the error code interface, helping developers build stable and reliable applications in the GoFrame framework, ensuring system high availability and maintainability." --- -Please refer to the core components section: [Error Handling - Error Code Interface](../../核心组件/错误处理/错误处理-错误码特性/错误处理-错误码接口.md) \ No newline at end of file +Please refer to the core components section: [Error Code - Interface](../../核心组件/错误处理/错误处理-错误码特性/错误处理-错误码接口.md) \ No newline at end of file diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\213\350\275\275\344\270\216\344\275\277\347\224\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\213\350\275\275\344\270\216\344\275\277\347\224\250.md" index eb3595cb288..926187efdca 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\213\350\275\275\344\270\216\344\275\277\347\224\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\345\277\253\351\200\237\345\274\200\345\247\213/\344\270\213\350\275\275\344\270\216\344\275\277\347\224\250.md" @@ -12,7 +12,7 @@ Hello everyone, welcome to the quick start chapter of the `GoFrame` framework! B In this chapter, we start from downloading, installing, and using the framework to guiding you in completing a relatively complete `Web Server` API development. :::info -If you are not ready for the `Go` language development environment, it is recommended that you first refer to the environment installation documentation: [Environment Installation](../../docs/其他资料/准备工作/准备工作.md) to understand some basic `Go` language knowledge before proceeding to the next step. +If you are not ready for the `Go` language development environment, it is recommended that you first refer to the environment installation documentation: [Environment Preparation](../../docs/其他资料/准备工作/准备工作.md) to understand some basic `Go` language knowledge before proceeding to the next step. If you encounter any problems in any chapter of the quick start, feel free to leave a comment 💬, and we will try our best to provide you with an answer as soon as possible 🌟🌟. ::: diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/What's Next.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/What's Next.md" index a3732d5b8d0..045e87d5eb1 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/What's Next.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/What's Next.md" @@ -46,11 +46,11 @@ If you encounter a component you're not familiar with during development and stu #### Core Components -Core components are an indispensable part of the framework; most business projects will use them. They are a key focus for learning the framework. Chapter link: [Core Components (🔥Important🔥)](../../docs/核心组件/核心组件.md) +Core components are an indispensable part of the framework; most business projects will use them. They are a key focus for learning the framework. Chapter link: [Core Components 🔥](../../docs/核心组件/核心组件.md) #### Component List -The component list presents a summary chapter of all the components of the framework. Chapter link: [Component List](../../docs/组件列表/组件列表.md) +The component list presents a summary chapter of all the components of the framework. Chapter link: [Components Category](../../docs/组件列表/组件列表.md) ## Important Tips diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\345\237\272\346\234\254\344\273\213\347\273\215.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\345\237\272\346\234\254\344\273\213\347\273\215.md" index b7bed16e15e..aae9b46db41 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\345\237\272\346\234\254\344\273\213\347\273\215.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\345\237\272\346\234\254\344\273\213\347\273\215.md" @@ -34,7 +34,7 @@ You may encounter the following common issues: - If the current system does not have the `wget` command installed, please continue executing the command after using `brew install wget` to install it. - 🔥 If you are using the `zsh` terminal, there might be `gf` alias conflicts (`git fetch` shortcut command), then please **restart the terminal software** to continue using it after the installation (at least execute it once). -- Your `Golang` development environment is not ready, lacking the `GOOS` or `GOARCH` environment variable. It is recommended to first refer to the environment installation documentation: [Go Development Environment](../../docs/其他资料/准备工作/准备工作.md). +- Your `Golang` development environment is not ready, lacking the `GOOS` or `GOARCH` environment variable. It is recommended to first refer to the environment installation documentation: [Environment Preparation](../../docs/其他资料/准备工作/准备工作.md). - If other issues that cannot be resolved arise, you can use the subsequent 【Source Code Compilation Installation】 method. #### `Linux` Environment @@ -93,7 +93,7 @@ Common Issue Precautions: 🔥 If you are using the `zsh` terminal, there might gf init demo -u ``` -This command creates a project scaffold directory, with the project name being `demo`. The `-u` parameter specifies whether to update the `goframe` framework used in the project to the latest version. The `GoFrame` framework has a unique project engineering structure. For a detailed introduction to the project directory structure, please refer to: [Project Directory Design](../../docs/框架设计/工程开发设计/工程目录设计.md). +This command creates a project scaffold directory, with the project name being `demo`. The `-u` parameter specifies whether to update the `goframe` framework used in the project to the latest version. The `GoFrame` framework has a unique project engineering structure. For a detailed introduction to the project directory structure, please refer to: [Project Structure🔥](../../docs/框架设计/工程开发设计/工程目录设计.md). The framework's scaffold directory is designed with general applicability, meeting the needs of WEB, terminal, microservices, etc. business development scenarios. By default, it generates an `HTTP Web Server` template project. After understanding the complete directory meaning, if there are any directories you don't need, you can delete them yourself. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step2 - \347\224\237\346\210\220dao_do_entity.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step2 - \347\224\237\346\210\220dao_do_entity.md" index f2281308be6..89620fe3827 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step2 - \347\224\237\346\210\220dao_do_entity.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step2 - \347\224\237\346\210\220dao_do_entity.md" @@ -27,7 +27,7 @@ gfcli: - my.image.pub/my-app ``` -- The `dao` section configuration is the configuration for the command to be executed this time, where `link` is the database configuration required for connection. `descriptionTag` indicates adding field descriptions to the `description` tag in the generated `entity` code file. If the `entity` object of the data table is used in the API `api` definition, this tag can serve as a parameter description. We need to change this `link` configuration to our database connection address. For a detailed introduction to the `link` configuration item, please refer to the section [ORM Configurations - Configuration File](../../../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置-配置文件.md). +- The `dao` section configuration is the configuration for the command to be executed this time, where `link` is the database configuration required for connection. `descriptionTag` indicates adding field descriptions to the `description` tag in the generated `entity` code file. If the `entity` object of the data table is used in the API `api` definition, this tag can serve as a parameter description. We need to change this `link` configuration to our database connection address. For a detailed introduction to the `link` configuration item, please refer to the section [ORM Configuration - File](../../../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置-配置文件.md). - The `docker` configuration item is a configuration template provided by default, used for image compilation. It is not explained in detail here, but those interested can refer to the development manual's relevant sections on development tools. ## Execute Code Generation @@ -54,7 +54,7 @@ Each table will generate three types of `Go` files: - `do`: Data transformation model for converting business models to data models, maintained by the tool and cannot be modified by users. The tool will overwrite this directory each time code files are generated. - `entity`: Data model, maintained by the tool and cannot be modified by users. The tool will overwrite this directory each time code files are generated. -For a more detailed introduction, please refer to the section [Data Specification - gen dao](../../../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +For a more detailed introduction, please refer to the section [Dao/Do/Entity Generating](../../../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) :::info The code generated by the scaffolding tool includes a top-level file comment. If the file comment contains the description `Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.`, it means the file is maintained by the scaffolding tool and will be overwritten with each code generation. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step3 - \347\274\226\345\206\231api\346\216\245\345\217\243\345\256\232\344\271\211.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step3 - \347\274\226\345\206\231api\346\216\245\345\217\243\345\256\232\344\271\211.md" index 777c0575046..d7b15f4dc7a 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step3 - \347\274\226\345\206\231api\346\216\245\345\217\243\345\256\232\344\271\211.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step3 - \347\274\226\345\206\231api\346\216\245\345\217\243\345\256\232\344\271\211.md" @@ -25,12 +25,12 @@ type CreateRes struct { } ``` Brief Introduction: -- In API definitions, `g.Meta` is used to manage API metadata information, which are defined as tags on the `g.Meta` property. These metadata include `path` (route address), `method` (request method), `tags` (API group for generating API documentation), and `summary` (API description). These metadata are part of `OpenAPIv3`, which we won't go into detail here. For those interested, refer to the chapter: [API Documentation - OpenAPIv3](../../../docs/WEB服务开发/接口文档/接口文档-OpenAPIv3.md). +- In API definitions, `g.Meta` is used to manage API metadata information, which are defined as tags on the `g.Meta` property. These metadata include `path` (route address), `method` (request method), `tags` (API group for generating API documentation), and `summary` (API description). These metadata are part of `OpenAPIv3`, which we won't go into detail here. For those interested, refer to the chapter: [API Document - OpenAPIv3](../../../docs/WEB服务开发/接口文档/接口文档-OpenAPIv3.md). - The `Name` and `Age` attributes here are the parameter definitions for our API. The `dc` tag is a shorthand for `description`, indicating the meaning of the parameter; the `v` tag is a shorthand for `valid`, indicating the validation rules for the parameter. We use three built-in validation rules here: - `required`: The parameter is mandatory. - `length`: Validates the parameter's length. - `between`: Validates the parameter's range. - Learn about these here, and refer to the section [Data Validation - Validation Rules](../../../docs/核心组件/数据校验/数据校验-校验规则.md) for more validation rules. + Learn about these here, and refer to the section [Data Validation - Rules](../../../docs/核心组件/数据校验/数据校验-校验规则.md) for more validation rules. - The request parameter structure `CreateReq` does not specify parameter reception methods because the `GoFrame` framework supports very flexible parameter reception methods, automatically recognizing `Query String/Form/Json/Xml` submission methods and mapping the submitted parameters to the request parameter receiving objects. - Only the return parameter structures have `json` tags because the returned data usually needs to be converted to `json` format for use by the frontend, and parameter naming in `snake` style is more in line with frontend naming conventions. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step4 - \347\224\237\346\210\220controller\344\273\243\347\240\201.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step4 - \347\224\237\346\210\220controller\344\273\243\347\240\201.md" index 5261842dabe..f6e701247db 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step4 - \347\224\237\346\210\220controller\344\273\243\347\240\201.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step4 - \347\224\237\346\210\220controller\344\273\243\347\240\201.md" @@ -106,7 +106,7 @@ If later we need to define a `v2` API, the `make ctrl` command will similarly ge ## Controller Router Implementation -Used for the implementation code files of specific `api` APIs. By default, codes are generated in the form of one source file per `api` API. Of course, it is also possible to control the aggregation of APIs defined in `api` files into a corresponding single source file. For specific command introductions and configurations, please refer to the chapter [API Specification-gen ctrl](../../../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md). +Used for the implementation code files of specific `api` APIs. By default, codes are generated in the form of one source file per `api` API. Of course, it is also possible to control the aggregation of APIs defined in `api` files into a corresponding single source file. For specific command introductions and configurations, please refer to the chapter [Controller Generating](../../../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md). ```text generated: /Users/john/Temp/demo/internal/controller/user/user_v1_create.go diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step6 - \351\205\215\347\275\256\344\270\216\350\267\257\347\224\261.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step6 - \351\205\215\347\275\256\344\270\216\350\267\257\347\224\261.md" index 3f3f7b670ef..4c3176d8392 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step6 - \351\205\215\347\275\256\344\270\216\350\267\257\347\224\261.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step6 - \351\205\215\347\275\256\344\270\216\350\267\257\347\224\261.md" @@ -31,7 +31,7 @@ func main() { } ``` -You only need to introduce the database driver once in the project; no further adjustments are needed later. For more support and detailed introduction on database drivers, please refer to the section [Database ORM](../../../docs/核心组件/数据库ORM/数据库ORM.md). +You only need to introduce the database driver once in the project; no further adjustments are needed later. For more support and detailed introduction on database drivers, please refer to the section [Database ORM🔥](../../../docs/核心组件/数据库ORM/数据库ORM.md). If you execute database operations without introducing the database driver, the Database ORM component will report the following error message: ```text @@ -76,7 +76,7 @@ The default provides `3` component configurations: - `logger`: Configuration for the default log component. The log level is set to output all logs, and all logs will be printed to standard output. - `database`: Configuration for the database component. This is just a template; we need to modify the connection address based on the actual situation. -Each component configuration has a reference link to the official documentation for configuration. Here, we need to modify the connection information in the database configuration to match the actual usable connection information. For detailed introduction on database configuration, please refer to the section: [ORM Configuration - Configuration File](../../../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置-配置文件.md) +Each component configuration has a reference link to the official documentation for configuration. Here, we need to modify the connection information in the database configuration to match the actual usable connection information. For detailed introduction on database configuration, please refer to the section: [ORM Configuration - File](../../../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置-配置文件.md) Sample source code: https://github.com/gogf/quick-demo/blob/main/manifest/config/config.yaml diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step7 - \345\220\257\345\212\250\344\270\216\346\265\213\350\257\225.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step7 - \345\220\257\345\212\250\344\270\216\346\265\213\350\257\225.md" index b23748eca8d..042f2047921 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step7 - \345\220\257\345\212\250\344\270\216\346\265\213\350\257\225.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\346\216\245\345\217\243\345\274\200\345\217\221/Step7 - \345\220\257\345\212\250\344\270\216\346\265\213\350\257\225.md" @@ -46,7 +46,7 @@ According to the address printed in the terminal, we visit: http://127.0.0.1:800 ![goframe api swagger](QQ_1731747246720.png) :::tip -Automated API documentation generation is one of the very powerful features provided by the `GoFrame` framework. We won't go into detail here, but those interested can refer to the section: [API Documentation](../../../docs/WEB服务开发/接口文档/接口文档.md) +Automated API documentation generation is one of the very powerful features provided by the `GoFrame` framework. We won't go into detail here, but those interested can refer to the section: [API Document](../../../docs/WEB服务开发/接口文档/接口文档.md) ::: ## API Testing diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\351\241\271\347\233\256\345\220\257\345\212\250.md" "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\351\241\271\347\233\256\345\220\257\345\212\250.md" index 9853bc6fcb0..10a3326eb9d 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\351\241\271\347\233\256\345\220\257\345\212\250.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/quick/\351\241\271\347\233\256\350\204\232\346\211\213\346\236\266/\351\241\271\347\233\256\345\220\257\345\212\250.md" @@ -7,7 +7,7 @@ keywords: [GoFrame Framework, Project Initialization, Program Initialization, ma description: "When you start your first project, you may feel confused about the engineering directory, but through this chapter, you can understand the project startup process and the directories involved. The main program entry is main.go, which guides the program startup by invoking the internal/cmd package. The default created HTTP Server supports multiple route registrations, making project initiation simple and fast. For specific usage details, please refer to the relevant documentation of the GoFrame framework." --- -When you start your first project, you may feel confused about the many directories under the project. No worries, through this chapter [Project Directory Design🔥](../../docs/框架设计/工程开发设计/工程目录设计.md), you can understand the role of each directory. Next, we will introduce how the project is initiated and which directories are linked in the program's startup, providing an understanding of the overall startup process. +When you start your first project, you may feel confused about the many directories under the project. No worries, through this chapter [Project Structure🔥](../../docs/框架设计/工程开发设计/工程目录设计.md), you can understand the role of each directory. Next, we will introduce how the project is initiated and which directories are linked in the program's startup, providing an understanding of the overall startup process. ## main.go @@ -26,7 +26,7 @@ The core components of the framework need to pass the `context` context paramete The main purpose of the `Run` command of the `Main` object is to perform bootstrap initialization, placing some dynamic initialization logic in the `Run` method of `Main`. In the project template, an `HTTP Server` is created by default, then routes are registered through grouped routing, and the `HTTP Server` is started. Afterwards, the `HTTP Server` will block and run, while also asynchronously listening for system signals. Upon receiving an exit signal, it will gracefully close connections and then exit the process. :::tip -The framework's command-line management defaults to a structured object management method. For a detailed introduction, please refer to the chapter: [Command Management](../../docs/核心组件/命令管理/命令管理.md) +The framework's command-line management defaults to a structured object management method. For a detailed introduction, please refer to the chapter: [Command](../../docs/核心组件/命令管理/命令管理.md) ::: ![main command](QQ_1731653678736.png) @@ -49,7 +49,7 @@ s.Group("/", func(group *ghttp.RouterGroup) { - Afterwards, a route object returned by `hello.NewV1()` is bound through the standardized route method of the `Bind` method. All public methods under this route object will be automatically registered to the route. Our project scaffold supports version management of APIs. By default, our route objects are version `v1`, created through the method `NewV1`. :::tip -For a detailed introduction of HTTP Server routes, please refer to the chapter: [Route Management🔥](../../docs/WEB服务开发/路由管理/路由管理.md) +For a detailed introduction of HTTP Server routes, please refer to the chapter: [Router 🔥](../../docs/WEB服务开发/路由管理/路由管理.md) ::: ## Route Objects @@ -85,7 +85,7 @@ The route information corresponding to the `Hello` method is defined in the `Hel :::tip This method of managing routes through a unified middleware that returns a uniform data structure and route objects is called **standardized routing**. -For a more detailed introduction, please refer to the chapter: [Route Registration - Standardized Routing](../../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md). +For a more detailed introduction, please refer to the chapter: [Standard Router](../../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md). ::: ## Running the Service diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.0 2022-03-09.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.0 2022-03-09.md index 1e2244959d9..fe1df0ceddf 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.0 2022-03-09.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.0 2022-03-09.md @@ -15,7 +15,7 @@ Thanks to all community partners for their contributions and support from commun In the new year, we continue to stay grounded, never forgetting our original intention! -Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如何从v1愉快升级到v2.md) +Upgrade Guide: [Happily Upgrade from v1 to v2](../docs/其他资料/如何从v1愉快升级到v2.md) ## 1. Important Features @@ -28,7 +28,7 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 - New version development tools support the accurate implementation of engineering specifications - `Entity/DAO/DO` features - Interface-oriented design -- More detailed introduction: [Engineering Development Design (🔥Important🔥)](../docs/框架设计/工程开发设计/工程开发设计.md) +- More detailed introduction: [Engineering Design 🔥](../docs/框架设计/工程开发设计/工程开发设计.md) ### 2. Full Link Tracing Features @@ -37,7 +37,7 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 - The framework creates `TraceID` by default, according to `OpenTelemetry` generation standards - All core components of the framework support link tracing information transmission - The logging component supports printing link information -- More detailed introduction: [Full Link Tracing Design](../docs/框架设计/全链路跟踪设计.md) +- More detailed introduction: [OpenTelemetry Tracing](../docs/框架设计/全链路跟踪设计.md) ### 3. Standardized Route Registration Features @@ -48,27 +48,27 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 - Automatic API parameter object reception and validation - Automatically generates interface documentation based on the standard `OpenAPIv3` protocol - Automatically generates `SwaggerUI` page -- More detailed introduction: [Route Registration - Standardized Route](../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) +- More detailed introduction: [Standard Router](../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) ### 4. Full Error Stack Feature - A major decision made at the framework level - **All** framework component errors support error stacks -- Detailed introduction: [Full Error Stack Design](../docs/框架设计/全错误堆栈设计.md) +- Detailed introduction: [Error Stack](../docs/框架设计/全错误堆栈设计.md) ### 5. New Error Code Feature - Uses interface design, highly extensible - Provides selectable common error codes - Core component base layer of the framework has enhanced error code support, e.g., identifying if `DB` execution error through error code in `error` -- More detailed introduction: [Error Handling - Error Code Feature](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码特性.md) +- More detailed introduction: [Error Handling - Error Code](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码特性.md) ### 6. Component Interface Design - Top-down unified interface design - Core components all use interface design - Higher extensibility and customizability -- More detailed introduction: [Interface and Generic Design](../docs/框架设计/接口化与泛型设计.md) +- More detailed introduction: [Interface and Generic](../docs/框架设计/接口化与泛型设计.md) ### 7. Support for Generic Framework @@ -76,7 +76,7 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 - Extensive use of `gvar` generic in core components of the framework - The significant value of `gvar` generic in the framework - Why it is not recommended to use generics in top-level business -- More detailed introduction: [Interface and Generic Design](../docs/框架设计/接口化与泛型设计.md) +- More detailed introduction: [Interface and Generic](../docs/框架设计/接口化与泛型设计.md) ### 8. Plenty of ORM Improvements @@ -89,14 +89,14 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 - Middleware design - Supports multiple `Handler` processing - Provides more flexible and powerful support for developer-defined log processing -- More detailed introduction: [Logging Component - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) +- More detailed introduction: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) #### 2) Logging Component Color Printing - Default color printing output in terminal - Different colors for different levels by default, configurable - Output to file/custom `Writer` default off, can be turned on via configuration -- More detailed introduction: [Logging Component - Color Printing](../docs/核心组件/日志组件/日志组件-颜色打印.md) +- More detailed introduction: [Logging - Color Printing](../docs/核心组件/日志组件/日志组件-颜色打印.md) #### 4) Improved Debug Mode Introduction @@ -108,25 +108,25 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 1. `/database/gdb` 1. Deprecated `Table` method, unified use of `Model` method to create `Model` object. -2. Deprecated `Struct/Structs` methods in `Model`, unified use of `Scan` method to execute query results conversion to `Struct` object/objects array: [ORM Query - Scan](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Scan映射.md) -3. Deprecated `BatchInsert/BatchReplace/BatchSave` methods, unified use of `Insert/Replace/Save` methods for implementation, internally auto-recognizing parameter type to decide single or batch write: [ORM Chaining - Write and Save](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) -4. Added `DoFilter` interface method for custom filtering of `SQL&Args` before `ORM` submits to underlying `driver`: [ORM Interface Development - Callback Handling](../docs/核心组件/数据库ORM/ORM接口开发/ORM接口开发-回调处理.md) +2. Deprecated `Struct/Structs` methods in `Model`, unified use of `Scan` method to execute query results conversion to `Struct` object/objects array: [Model Query - Scan](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Scan映射.md) +3. Deprecated `BatchInsert/BatchReplace/BatchSave` methods, unified use of `Insert/Replace/Save` methods for implementation, internally auto-recognizing parameter type to decide single or batch write: [ORM Model - Insert/Save](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) +4. Added `DoFilter` interface method for custom filtering of `SQL&Args` before `ORM` submits to underlying `driver`: [ORM Interface - Callback](../docs/核心组件/数据库ORM/ORM接口开发/ORM接口开发-回调处理.md) 5. Added `DoCommit` interface method for custom processing before `ORM` submits `SQL&Args` to underlying `driver` -6. Added `ConvertDataForRecord` interface method for customized data conversion handling. [ORM Interface Development - Callback Handling](../docs/核心组件/数据库ORM/ORM接口开发/ORM接口开发-回调处理.md) -7. Added `Raw` method to build `Model` object through raw `SQL` statement, followed by using `Model` chaining operations and features: [ORM Chaining - Model Creation](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型创建.md) -8. Added `Handler` feature for customized `Model` object modification and returning new `Model` object, allowing easy reuse of common logic: [ORM Chaining - Handler Feature](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Handler特性.md) -9. Added `Union/UnionAll` feature for merging results of multiple `SQL/Model` queries: [ORM Query - Union/UnionAll](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-UnionUnionAll.md) -10. Added `With` feature for condition query and sort statement configuration support: [Model Association - Static Association - With Feature](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) -11. Added `OnDuplicate/OnDuplicateEx` methods for specifying update/do-not-update field of `Save` methods: [ORM Chaining - Write and Save](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) -12. Added `Wheref/WhereOrf` methods for condition passing with formatted string statement: [ORM Query - Where Conditions](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) +6. Added `ConvertDataForRecord` interface method for customized data conversion handling. [ORM Interface - Callback](../docs/核心组件/数据库ORM/ORM接口开发/ORM接口开发-回调处理.md) +7. Added `Raw` method to build `Model` object through raw `SQL` statement, followed by using `Model` chaining operations and features: [ORM Model - Model](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型创建.md) +8. Added `Handler` feature for customized `Model` object modification and returning new `Model` object, allowing easy reuse of common logic: [ORM Model - Handler](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Handler特性.md) +9. Added `Union/UnionAll` feature for merging results of multiple `SQL/Model` queries: [Model Query - Union/UnionAll](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-UnionUnionAll.md) +10. Added `With` feature for condition query and sort statement configuration support: [Model Association - With](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) +11. Added `OnDuplicate/OnDuplicateEx` methods for specifying update/do-not-update field of `Save` methods: [ORM Model - Insert/Save](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) +12. Added `Wheref/WhereOrf` methods for condition passing with formatted string statement: [Model Query - Where](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) 13. Added `WhereLT/WhereLTE/WhereGT/WhereGTE` and `WhereOrLT/WhereOrLTE/WhereOrGT/WhereOrGTE` methods for adding common comparison conditions to ORM. 14. Added `WherePrefix/WhereOrPrefix` methods for adding table prefixes to condition fields, commonly used in association queries 15. Added `FieldsPrefix/FieldsExPrefix` methods for adding custom table prefix to query fields, commonly used in association queries 16. Added `FieldsCount/FieldsSum/FieldsMin/FieldsMax/FieldsAvg` methods for adding common unified query conditions 17. Added `LeftJoinOnField/RightJoinOnField/InnerJoinOnField` methods for convenient association with tables having the same field name -18. Added `OmitEmptyWhere/OmitEmptyData` methods for specifically filtering empty value data in `Where` conditions and `Data`: [ORM Chaining - Field Filtering](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) -19. Added `OmitNil/OmitNilWhere/OmitNilData` methods for specifically filtering `nil` data in `Where` conditions and `Data`: [ORM Chaining - Field Filtering](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) -20. Added `TimeZone` configuration item for custom time zone conversion in database queries (currently supports `mysql/pgsql`): [ORM Usage Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) +18. Added `OmitEmptyWhere/OmitEmptyData` methods for specifically filtering empty value data in `Where` conditions and `Data`: [ORM Model - Fields Filtering](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) +19. Added `OmitNil/OmitNilWhere/OmitNilData` methods for specifically filtering `nil` data in `Where` conditions and `Data`: [ORM Model - Fields Filtering](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) +20. Added `TimeZone` configuration item for custom time zone conversion in database queries (currently supports `mysql/pgsql`): [ORM - Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) 21. Improved `Cache` feature, supports accurate cache parameter control 22. Added `Close` method for manually closing database connection 23. Removed `ORM` configuration limit of default `100` connections when custom configuration not used. @@ -138,15 +138,15 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 29. Removed all deprecated methods of query result types `Record/Result`. 30. Completed unit tests. 31. `/database/gredis` -32. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Redis - Interface Design](../docs/组件列表/NoSQL%20Redis/Redis-接口化设计.md) +32. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Redis - Interface](../docs/组件列表/NoSQL%20Redis/Redis-接口化设计.md) -33. Provided default adapter implementation based on third-party `goredis` package, added support for `Redis` cluster: [Redis - Configuration Management](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) -34. Due to support for cluster features, configuration file format changed: [Redis - Configuration Management](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) +33. Provided default adapter implementation based on third-party `goredis` package, added support for `Redis` cluster: [Redis - Configuration](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) +34. Due to support for cluster features, configuration file format changed: [Redis - Configuration](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) ### 2. Network Components 1. `/net/ghttp` -1. New route registration method: [Route Registration - Standard Route](../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) +1. New route registration method: [Standard Router](../docs/WEB服务开发/路由管理/路由管理-路由注册/路由注册-规范路由/路由注册-规范路由.md) 2. Default `Request` object injection into `ctx` context object, with added `RequestFromCtx/g.RequestFromCtx` methods to obtain `Request` object in `ctx`. 3. Abstracted and encapsulated `Client` features into `gclient` component: [HTTPClient](../docs/WEB服务开发/HTTPClient/HTTPClient.md) 4. `Server` logs added support for printing `ctx` context link information and improved log format: [Link Tracing](https://wiki.goframe.org/pages/viewpage.action?pageId=7298186) @@ -155,54 +155,54 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 7. Deprecated `Controller` route registration method, removed related implementation code. 2. `/net/gtrace` 1. Upgraded `go.opentelemetry.io/otel` to the latest official version. -2. Improved new link tracing usage documentation: [Service Link Tracing](../docs/服务可观测性/服务链路跟踪/服务链路跟踪.md) +2. Improved new link tracing usage documentation: [Service Tracing](../docs/服务可观测性/服务链路跟踪/服务链路跟踪.md) ### 3. System Components 1. `/os/glog` 1. To promote observability features and implement link tracing specifications, all log printing methods added `context.Context` parameter. - 2. Logging component added `Handler` feature, using middleware design and supporting multiple `Handler` processing, providing more flexible and powerful support for developer-defined log processing: [Logging Component - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) - 3. Logging component added support for color printing of content, default color printing output in terminal, output to file/custom `Writer` default off, can be enabled via related configuration: [Logging Component - Color Printing](../docs/核心组件/日志组件/日志组件-颜色打印.md) + 2. Logging component added `Handler` feature, using middleware design and supporting multiple `Handler` processing, providing more flexible and powerful support for developer-defined log processing: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) + 3. Logging component added support for color printing of content, default color printing output in terminal, output to file/custom `Writer` default off, can be enabled via related configuration: [Logging - Color Printing](../docs/核心组件/日志组件/日志组件-颜色打印.md) 4. Deprecated `Println` method. - 5. Documentation update: [Logging Component](../docs/核心组件/日志组件/日志组件.md) + 5. Documentation update: [Logging](../docs/核心组件/日志组件/日志组件.md) 2. `/os/gres` - 1. Added `Export` method for exporting files from resource component to local disk: [Resource Management - Method Introduction](../docs/核心组件/资源管理/资源管理-方法介绍.md) + 1. Added `Export` method for exporting files from resource component to local disk: [Resource - Methods](../docs/核心组件/资源管理/资源管理-方法介绍.md) 3. `/os/gfile` 1. Added `SizeFormat` method for getting formatted size string of specified file. - 2. Documentation update: [File Management - gfile](../docs/组件列表/系统相关/文件管理-gfile.md) + 2. Documentation update: [File](../docs/组件列表/系统相关/文件管理-gfile.md) 4. `/os/gcache` - 1. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Cache Management - Interface Design](../docs/核心组件/缓存管理/缓存管理-接口设计.md) - 2. Provided default cache implementation based on process memory: [Cache Management - Memory Cache](../docs/核心组件/缓存管理/缓存管理-内存缓存.md) + 1. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Caching - Interface](../docs/核心组件/缓存管理/缓存管理-接口设计.md) + 2. Provided default cache implementation based on process memory: [Caching - In-Memory](../docs/核心组件/缓存管理/缓存管理-内存缓存.md) 3. All operation methods added `context.Context` context parameter. 4. Parameter acquisition returns unified use of `*gvar.Var` generic object. 5. Added `Must*` methods for directly obtaining parameters and triggering `panic` on errors. 5. `/os/gcfg` - 1. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Configuration Management - Interface Design](../docs/核心组件/配置管理/配置管理-接口化设计/配置管理-接口化设计.md) - 2. Provided default configuration management based on file system: [Configuration Management](../docs/核心组件/配置管理/配置管理.md) + 1. Adopted adapter pattern, refactored the component with interface design to improve extensibility: [Configuration - Interface](../docs/核心组件/配置管理/配置管理-接口化设计/配置管理-接口化设计.md) + 2. Provided default configuration management based on file system: [Configuration](../docs/核心组件/配置管理/配置管理.md) 3. Parameter acquisition returns unified use of `*gvar.Var` generic object. 4. All operation methods added `context.Context` context parameter. 5. Added `GetWithEnv` method, automatically reading corresponding parameters from environment variables when they cannot be found in configuration adapter: [Configuration Management - Configuration Reading](https://wiki.goframe.org/pages/viewpage.action?pageId=1114668#id-%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86-%E9%85%8D%E7%BD%AE%E8%AF%BB%E5%8F%96) 6. Added `GetWithCmd` method, automatically reading corresponding parameters from command line parameters when they cannot be found in configuration adapter: [Configuration Management - Configuration Reading](https://wiki.goframe.org/pages/viewpage.action?pageId=1114668#id-%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86-%E9%85%8D%E7%BD%AE%E8%AF%BB%E5%8F%96) 7. Added `Must*` methods for directly obtaining parameters and triggering `panic` on errors. - 8. Configuration component usability improvement, accessing configuration component via singleton object will automatically search configuration files according to `toml/yaml/yml/json/ini/xml` file suffix: [Configuration Management](../docs/核心组件/配置管理/配置管理.md) + 8. Configuration component usability improvement, accessing configuration component via singleton object will automatically search configuration files according to `toml/yaml/yml/json/ini/xml` file suffix: [Configuration](../docs/核心组件/配置管理/配置管理.md) 6. `/os/gcmd` 1. Parameter acquisition returns unified use of `*gvar.Var` generic object. - 2. Brand new multi-level command line management method, supports automatic generation of command line usage tips: [Command Management - Command Line Object](../docs/核心组件/命令管理/命令管理-命令行对象.md) - 3. Added object-based command line management method, more suitable for large terminal command scenes: [Command Management - Structured Parameters](../docs/核心组件/命令管理/命令管理-结构化参数.md) + 2. Brand new multi-level command line management method, supports automatic generation of command line usage tips: [Command - Object](../docs/核心组件/命令管理/命令管理-命令行对象.md) + 3. Added object-based command line management method, more suitable for large terminal command scenes: [Command - Structure](../docs/核心组件/命令管理/命令管理-结构化参数.md) 7. `/os/genv` 1. Parameter acquisition returns unified use of `*gvar.Var` generic object. 8. `/os/gcron` 1. Added `context.Context` parameter to defined scheduled task methods. 2. Added `context.Context` parameter to all create scheduled task methods. - 3. Documentation update: [Scheduled Tasks - gcron](../docs/组件列表/系统相关/定时任务-gcron/定时任务-gcron.md) + 3. Documentation update: [Cron Job](../docs/组件列表/系统相关/定时任务-gcron/定时任务-gcron.md) 9. `/os/gtime` 1. Deprecated `Second/Millisecond/Microsecond/Nanosecond` package methods, replaced with `Timestamp/TimestampMilli/TimestampMicro/TimestampNano` methods. - 2. Documentation update: [Time Management - gtime](../docs/组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) + 2. Documentation update: [Time](../docs/组件列表/系统相关/时间管理-gtime/时间管理-gtime.md) 10. `/os/gtimer` 1. Added `context.Context` parameter to defined timer methods. 2. Added `context.Context` parameter to all create timer methods. 3. Improved the timer task execution detection mechanism based on priority queue data structure storage, enhancing execution performance. - 4. Documentation update: [Timer - gtimer](../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) + 4. Documentation update: [Timer](../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) 11. `/os/grpool` 1. Added `context.Context` parameter to callback method definitions. 2. Added `context.Context` parameter to `goroutine` pool task addition methods. @@ -215,7 +215,7 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 2. Added `plus/minus/times/divide` arithmetic template methods. 3. Documentation update: [Template Engine](../docs/核心组件/模板引擎/模板引擎.md) 14. `/os/gstructs` - 1. Opened `structs` package from `internal` of framework, named as `gstructs`, used for advanced usage of `struct` reflection operations: [Object Information - gstructs](../docs/组件列表/系统相关/对象信息-gstructs.md) + 1. Opened `structs` package from `internal` of framework, named as `gstructs`, used for advanced usage of `struct` reflection operations: [Object Information](../docs/组件列表/系统相关/对象信息-gstructs.md) ### 4. Error Handling @@ -225,31 +225,31 @@ Upgrade Guide: [How to Happily Upgrade from v1 to v2](../docs/其他资料/如 2. Added `CodeMessage` method for obtaining error code information of specified error. 3. Added `NewOption` method for custom-configured error object creation, dedicated to advanced players of the framework. 4. Added `HasStack` method to determine whether given error interface object has implemented (contains) stack information. -5. Changed error code from integer to interface object to achieve customizability and improve extensibility, refer to `gcode` component introduction for details: [Error Handling - Error Code Feature](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) +5. Changed error code from integer to interface object to achieve customizability and improve extensibility, refer to `gcode` component introduction for details: [Error Code - Example](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) 6. Improved usability, revised `NewCode/NewCodeSkip/WrapCode/WrapCodeSkip` methods, optional `text` input parameter, default using `Message` info of corresponding error code. 2. `/errors/gcode` -1. Added `gcode` error code component, providing highly customizable and extensible error code management, combined with `gerror` component for powerful error handling: [Error Handling - Error Code Usage](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) +1. Added `gcode` error code component, providing highly customizable and extensible error code management, combined with `gerror` component for powerful error handling: [Error Code - Example](../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) ### 5. Other Components 1. `/container/garray` 1. Added `At` method to each array type for directly obtaining returned data at specific index position. -2. Documentation update: [Array Type - Method Introduction](../docs/组件列表/数据结构/数组类型-garray/数组类型-方法介绍.md) +2. Documentation update: [Array - Methods](../docs/组件列表/数据结构/数组类型-garray/数组类型-方法介绍.md) 2. `/debug/gdebug` 1. Added `TestDataContent` method for directly obtaining file content of specified path under `testdata` directory in testing package. -2. Documentation update: [Debugging Feature - gdebug](../docs/组件列表/功能调试/调试功能-gdebug.md) +2. Documentation update: [Debugging](../docs/组件列表/功能调试/调试功能-gdebug.md) 3. `/encoding/gjson` 1. Deprecated most `Get*` methods, unified use of `Get` method to obtain the content of specified `pattern`, uniformly returns `*gvar.Var` generic object, developers can use corresponding methods to easily convert to specific type variables according to business scenario. 2. Added several `Must*` methods. 3. Comprehensive update on usage documentation 4. `/frame/g` 1. Added `ModelRaw` method for conveniently creating native `SQL` based database `Model` object. -2. Added `logger` configuration to `ORM` objects created via `/frame/g` module, auto-initialized by automatically reading configuration files: [ORM Usage Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) -3. Added `logger` configuration to `Server` objects created via `/frame/g` module, auto-initialized by automatically reading configuration files: [Service Configuration](../docs/WEB服务开发/服务配置/服务配置.md) +2. Added `logger` configuration to `ORM` objects created via `/frame/g` module, auto-initialized by automatically reading configuration files: [ORM - Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) +3. Added `logger` configuration to `Server` objects created via `/frame/g` module, auto-initialized by automatically reading configuration files: [Configuration](../docs/WEB服务开发/服务配置/服务配置.md) 5. `/frame/gmvc` 1. Deprecated `gmvc` coupled module, no further support in the future. 6. `/util/gutil` -1. Improved implementation of `Dump` method, no longer using `json` package to implement type printing, instead self-implemented feature for printing any type, supporting detailed data type printing: [Utility Methods - gutil](../docs/组件列表/实用工具/工具方法-gutil.md) +1. Improved implementation of `Dump` method, no longer using `json` package to implement type printing, instead self-implemented feature for printing any type, supporting detailed data type printing: [Utility Functions](../docs/组件列表/实用工具/工具方法-gutil.md) 2. Added `SliceToMapWithColumnAsKey` method for converting `Slice` to `Map` according to certain rules. 7. `/utils/gvalid` 1. Added `bail` validation rule, and `Bail` chaining method for immediately exiting validation when data validation fails and not executing subsequent validation rules. @@ -267,4 +267,4 @@ For other numerous improvement details, we won't elaborate here. Interested frie 3. Improved `gen dao` command, adopting the brand new `V2` engineering design, automatically generating `entity/dao/do` code files. 4. Removed `update` command, tool updates unified through [https://github.com/gogf/gf/tree/master/cmd/gf](https://github.com/gogf/gf/tree/master/cmd/gf) 5. Removed `get` command. -6. All-new documentation: [Development Tools](../docs/开发工具/开发工具.md) \ No newline at end of file +6. All-new documentation: [CLI Tool](../docs/开发工具/开发工具.md) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.1 2022-06-22.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.1 2022-06-22.md index 83d1a3d855b..a9d597ebe72 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.1 2022-06-22.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.1 2022-06-22.md @@ -9,14 +9,14 @@ description: "The GoFrame v2.1 release introduces several practical business fea Hello everyone, the `v2.1` release includes some business-related function features, improvements, and bug fixes. It's recommended to upgrade. -Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/社区交流/技术分享交流/5-2022-06-22%20GoFrame%20v2.1功能特性&使用答疑.md) +Video Introduction: [2022-06-22 GoFrame v2.1 Features & Q&A](../community/社区交流/技术分享交流/5-2022-06-22%20GoFrame%20v2.1功能特性&使用答疑.md) ## New Features -1. The development tool introduces the `gen service` command, supporting automated generation of `service` interface code and implementation injection based on the `logic` layer code: [Module Specification-gen service](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) +1. The development tool introduces the `gen service` command, supporting automated generation of `service` interface code and implementation injection based on the `logic` layer code: [Service Generating](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) 2. Database Features: -1. Added `WhereBuilder` feature for more flexible `SQL` condition statement combinations: [ORM Query-Where Conditions](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) -2. Added `Hook` feature for custom hook event handling: [ORM Chaining Operation-Hook Feature](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Hook特性.md) +1. Added `WhereBuilder` feature for more flexible `SQL` condition statement combinations: [Model Query - Where](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) +2. Added `Hook` feature for custom hook event handling: [ORM Model - Hook](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Hook特性.md) 3. The framework adds a `DeepCopy` feature for deep copying of types: 1. Added `gutil.Copy` method for deep copying specified content. 2. Generic types add a `Copy` method for deep copying their own content. @@ -55,7 +55,7 @@ Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/ 2. `ghttp` 1. Improved `Request.GetUrl` method details for `URL Schema`. 2. Parameter reception supports automatic receipt of `UploadFile` attributes. -3. Added custom UI guidance documentation for interface documentation: [Interface Documentation-Custom UI](../docs/WEB服务开发/接口文档/接口文档-自定义UI.md) +3. Added custom UI guidance documentation for interface documentation: [API Document - Custom UI](../docs/WEB服务开发/接口文档/接口文档-自定义UI.md) 4. Changed the default external `JS CDN` dependency for interface documentation to `unpkg.com`. 5. Improved service registration implementation logic. 6. Improved internal detail implementation logic. @@ -70,15 +70,15 @@ Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/ 1. `gcfg` 1. The default file system interface implements support for the `property` file format. 2. `gcmd` -1. Parameter parsing adds `CaseSensitive` configuration, default parsing is case-insensitive, especially affecting structured parameter reception: [Command Management-Structured Parameters](../docs/核心组件/命令管理/命令管理-结构化参数.md) -2. Added cross-process link tracking feature: [Command Management-Link Tracking](../docs/核心组件/命令管理/命令管理-链路跟踪.md) +1. Parameter parsing adds `CaseSensitive` configuration, default parsing is case-insensitive, especially affecting structured parameter reception: [Command - Structure](../docs/核心组件/命令管理/命令管理-结构化参数.md) +2. Added cross-process link tracking feature: [Command - Tracing](../docs/核心组件/命令管理/命令管理-链路跟踪.md) 3. `glog` -1. Added a global `Handler` setting function, allowing developers to globally customize handling of all logs of the `glog` component, such as globally outputting in the `JSON` file format: [Log Component-Handler](../docs/核心组件/日志组件/日志组件-Handler.md) -2. Added the default `JSON` format `Handler` for developers to use: [Log Component-Handler](../docs/核心组件/日志组件/日志组件-Handler.md) +1. Added a global `Handler` setting function, allowing developers to globally customize handling of all logs of the `glog` component, such as globally outputting in the `JSON` file format: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) +2. Added the default `JSON` format `Handler` for developers to use: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) 4. `gsession` 1. Resolved excessive memory usage issues caused by too many user accesses. 5. `gproc` -1. Added cross-process link tracking feature: [Process Management-Link Tracking](../docs/组件列表/系统相关/进程管理-gproc/进程管理-链路跟踪.md) +1. Added cross-process link tracking feature: [Process - Tracing](../docs/组件列表/系统相关/进程管理-gproc/进程管理-链路跟踪.md) ### Container Components @@ -99,8 +99,8 @@ Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/ ### Database Components 1. `gdb` -1. Added `WhereBuilder` feature for more flexible `SQL` condition statement combinations: [ORM Query-Where Conditions](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) -2. Added `HOOK` feature for custom hook event handling: [ORM Chaining Operation-Hook Feature](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Hook特性.md) +1. Added `WhereBuilder` feature for more flexible `SQL` condition statement combinations: [Model Query - Where](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Where条件.md) +2. Added `HOOK` feature for custom hook event handling: [ORM Model - Hook](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-Hook特性.md) 3. Improved the logic of data conversion processing before submitting to the underlying `driver`. 4. Moved the `mysql` driver from the main library to the community module to facilitate decoupling from the main library. Therefore, from subsequent versions, developers need to manually import driver dependencies: [https://github.com/gogf/gf/tree/master/contrib/drivers](https://github.com/gogf/gf/tree/master/contrib/drivers) @@ -109,7 +109,7 @@ Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/ 1. `gproperty` 1. Added `gproperty` component for parsing `Java Property` format files. 2. `gjson` -1. Added support for encoding, decoding, and manipulating `property` file format data: [General Encoding-gjson](../docs/组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md) +1. Added support for encoding, decoding, and manipulating `property` file format data: [General Codec](../docs/组件列表/编码解码/通用编解码-gjson/通用编解码-gjson.md) 2. Fixed the issue of precision loss when reading large integers. ### Text Processing @@ -122,8 +122,8 @@ Video Introduction: [2022-06-22 GoFrame v2.1 Features & Usage Q&A](../community/ 1. `gerror` 1. Added `Unwrap` method (same as `Next` method) to support the new `Golang` version `Unwrap` error interface. -2. Added `Equal` method for comparing whether two errors are equal: [Error Handling-Error Comparison](../docs/核心组件/错误处理/错误处理-错误比较.md) -3. Added `Is` method to support the new `Golang` version `Is` error interface: [Error Handling-Error Comparison](../docs/核心组件/错误处理/错误处理-错误比较.md) +2. Added `Equal` method for comparing whether two errors are equal: [Error Handling - Comparison](../docs/核心组件/错误处理/错误处理-错误比较.md) +3. Added `Is` method to support the new `Golang` version `Is` error interface: [Error Handling - Comparison](../docs/核心组件/错误处理/错误处理-错误比较.md) ### Utility Methods @@ -140,8 +140,8 @@ Compared to the stable code components of the main library, CLI development tool 1. Improved `build` command, supporting specifying the generation directory of `pack` code files, with some parameter adjustments. 2. Improved `docker` command, supporting multiple `docker tag` renaming and automatic repository pushing. -3. Improved `gen dao` command, supporting custom `dao/do/entity` code generation directory, no longer forced to generate in the `service/internal` directory: [Data Specification-gen dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) -4. Added `gen service` command, supporting automated generation of `service` interface code based on `logic` layer code: [Module Specification-gen service](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) +3. Improved `gen dao` command, supporting custom `dao/do/entity` code generation directory, no longer forced to generate in the `service/internal` directory: [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +4. Added `gen service` command, supporting automated generation of `service` interface code based on `logic` layer code: [Service Generating](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) 5. Fixed issues with the `run` command's custom program startup parameters, `gofmt/goimports` program path containing spaces. ## Incompatibilities @@ -149,4 +149,4 @@ Compared to the stable code components of the main library, CLI development tool 1. Moved the `mysql` driver from the main library to the community module to facilitate decoupling from the main library. Therefore, from subsequent versions, developers need to manually import driver dependencies: [https://github.com/gogf/gf/tree/master/contrib/drivers](https://github.com/gogf/gf/tree/master/contrib/drivers) 2. The `ghttp.Response.WriteJson/Xml` methods no longer return `error`. Adjust according to the compilation error. 3. The `goai` component moved from the `protocol` category to the `net` category, changing the `import` path. Adjust according to the compilation error. -4. Database `ORM` operations with `gtime.Time` type parameters will automatically convert them to `time.Time` type before submission to the underlying database `driver` to solve the precision loss issue. This means that `gtime.Time` type parameters are also affected by the database configuration's timezone parameters. For details, see: [ORM Timezone Handling](../docs/核心组件/数据库ORM/ORM时区处理.md) \ No newline at end of file +4. Database `ORM` operations with `gtime.Time` type parameters will automatically convert them to `time.Time` type before submission to the underlying database `driver` to solve the precision loss issue. This means that `gtime.Time` type parameters are also affected by the database configuration's timezone parameters. For details, see: [ORM - Timezone](../docs/核心组件/数据库ORM/ORM时区处理.md) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.2 2022-10-11.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.2 2022-10-11.md index 204b5ed7c50..a72a657c6a6 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.2 2022-10-11.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.2 2022-10-11.md @@ -20,7 +20,7 @@ Github ChangeLog: [https://github.com/gogf/gf/releases/tag/v2.2.0](https://githu ## New Features -1. Refactored the built-in validation rules manager of the validation component, increasing and supporting `59` commonly used built-in validation rules: [Data Validation - Validation Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) +1. Refactored the built-in validation rules manager of the validation component, increasing and supporting `59` commonly used built-in validation rules: [Data Validation - Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) 2. Added the community component `contrib/config/kubecm`, implementing a configuration component `Adapter` based on `kubernetes configmap`: [https://github.com/gogf/gf/tree/master/contrib/config/kubecm](https://github.com/gogf/gf/tree/master/contrib/config/kubecm) 3. Added the community component `contrib/config/apollo`, implementing a configuration component `Adapter` based on the `apollo` configuration center: [https://github.com/gogf/gf/tree/master/contrib/config/apollo](https://github.com/gogf/gf/tree/master/contrib/config/apollo) 4. Added the community component `contrib/config/polaris`, implementing a configuration component `Adapter` based on the `polaris` configuration center: [https://github.com/gogf/gf/tree/master/contrib/config/polaris](https://github.com/gogf/gf/tree/master/contrib/config/polaris) @@ -49,7 +49,7 @@ Github ChangeLog: [https://github.com/gogf/gf/releases/tag/v2.2.0](https://githu ### Database ORM -1. Unified the configuration management format of single-line strings for different database types and maintained compatibility and support for the existing specific configuration formats for different database types: [ORM Usage Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) +1. Unified the configuration management format of single-line strings for different database types and maintained compatibility and support for the existing specific configuration formats for different database types: [ORM - Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) 2. Improved interface design, simplifying `driver` implementation logic, making it easier to add more database `driver` support in the future. 3. Added the `ToSQL` method to generate SQL statements for debugging ORM operations without actually executing the SQL. 4. Added the `CatchSQL` method to obtain a list of internally executed SQL statements through a closure method. @@ -58,10 +58,10 @@ Github ChangeLog: [https://github.com/gogf/gf/releases/tag/v2.2.0](https://githu 7. Added `Extra` and `Protocol` configurations for setting additional configuration parameters and link protocols, with default automatic parsing through `Link` configuration. 8. Removed the `Filtered` interface, adopting a default implementation to simplify complexity and improve usability. 9. Added `ConvertValueForLocal` and `CheckLocalTypeForField` interfaces for custom data type conversion and fetching, with default implementation provided. -10. Added `ClearTableFields` method for clearing data structure cache specific to a particular database table: [ORM Advanced Features - Field Mapping](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-字段映射.md) -11. Added `ClearTableFieldsAll` method for clearing all data structure caches for all tables in the current database object: [ORM Advanced Features - Field Mapping](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-字段映射.md) -12. Added `ClearCache` method for clearing all query caches for a particular database table: [ORM Chain Operation - Query Cache](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) -13. Added `ClearCacheAll` method for clearing all query caches for the current database object: [ORM Chain Operation - Query Cache](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) +10. Added `ClearTableFields` method for clearing data structure cache specific to a particular database table: [ORM Senior - Field Mapping](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-字段映射.md) +11. Added `ClearTableFieldsAll` method for clearing all data structure caches for all tables in the current database object: [ORM Senior - Field Mapping](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-字段映射.md) +12. Added `ClearCache` method for clearing all query caches for a particular database table: [ORM Model - Query Cache](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) +13. Added `ClearCacheAll` method for clearing all query caches for the current database object: [ORM Model - Query Cache](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-查询缓存.md) 14. Various other improvements. ### Encoding and Decoding Component @@ -123,7 +123,7 @@ Github ChangeLog: [https://github.com/gogf/gf/releases/tag/v2.2.0](https://githu 1. Added `GetOrDefaultStr/GetOrDefaultAny` methods for convenient handling of default values and optional parameters. 3. `gvalid` 1. Refactored the built-in validation rules manager, making it very convenient to add a new built-in validation. -2. Increased and supported `59` commonly used built-in validation rules: [Data Validation - Validation Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) +2. Increased and supported `59` commonly used built-in validation rules: [Data Validation - Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) ## Bug Fixes @@ -137,8 +137,8 @@ Github ChangeLog: [https://github.com/gogf/gf/releases/tag/v2.2.0](https://githu ## Development Tools -1. Improved `gen dao` command by adding the `clear` parameter to automatically clean up local data model Go files that do not exist in the target database: [Data Specification - Gen Dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) -2. Improved `gen service` command: [Module Specification - Gen Service](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) +1. Improved `gen dao` command by adding the `clear` parameter to automatically clean up local data model Go files that do not exist in the target database: [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +2. Improved `gen service` command: [Service Generating](../docs/开发工具/代码生成-gen/模块规范-gen%20service.md) 1. Integrated interface generation of struct objects by business module. 2. Added `clear` parameter to automatically clean up interface code and files not corresponding to `logic`. 3. Various other detail improvements. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.3 2023-01-18.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.3 2023-01-18.md index 9a9979a231d..2bd7955e038 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.3 2023-01-18.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.3 2023-01-18.md @@ -21,7 +21,7 @@ Complete change list: [https://github.com/gogf/gf/compare/v2.2.0...v2.3.1](https 2. New common service interface implementations for configuration management and registration discovery components: - **Configuration Management** (`nacos`): [https://github.com/gogf/gf/tree/master/contrib/config/nacos](https://github.com/gogf/gf/tree/master/contrib/config/nacos) - **Registration Discovery** (`zookeeper`): [https://github.com/gogf/gf/tree/master/contrib/registry/zookeeper](https://github.com/gogf/gf/tree/master/contrib/registry/zookeeper) -3. Added tool command `gf up` for convenient framework upgrades, see: [Framework Upgrade-up](../docs/开发工具/框架升级-up.md) +3. Added tool command `gf up` for convenient framework upgrades, see: [Version Upgrade](../docs/开发工具/框架升级-up.md) ## Improvements @@ -50,8 +50,8 @@ Complete change list: [https://github.com/gogf/gf/compare/v2.2.0...v2.3.1](https ### Database Components 1. `gdb` -1. To enhance extensibility, the `TX` transaction object is changed to an interface definition, and the original `TX` object is renamed to `TXCore` for convenient custom interface implementation object nesting: [ORM Transaction Processing](../docs/核心组件/数据库ORM/ORM事务处理/ORM事务处理.md) -2. Added `Namespace` configuration item to support issues of distinguishing `Catalog&Schema` in some database services. The original `Schema` continues to represent the database name, while the new `Namespace` represents the `Schema` configuration in some database services: [ORM Usage Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) +1. To enhance extensibility, the `TX` transaction object is changed to an interface definition, and the original `TX` object is renamed to `TXCore` for convenient custom interface implementation object nesting: [ORM - Transaction](../docs/核心组件/数据库ORM/ORM事务处理/ORM事务处理.md) +2. Added `Namespace` configuration item to support issues of distinguishing `Catalog&Schema` in some database services. The original `Schema` continues to represent the database name, while the new `Namespace` represents the `Schema` configuration in some database services: [ORM - Configuration](../docs/核心组件/数据库ORM/ORM使用配置/ORM使用配置.md) 3. Improved database name configuration to support Chinese database names. 4. Added the current database name printout in the `SQL` execution log. 5. Fixed the cache issue of the `Count` method. @@ -123,7 +123,7 @@ Complete change list: [https://github.com/gogf/gf/compare/v2.2.0...v2.3.1](https 8. `gtime` 1. Improved `Equal/After/Sub` methods to resolve detailed issues in some scenarios. 2. Improved `EndOf*` methods, allowing developers to control the granularity of `EndOf` calculation in the returned time object. The default granularity is changed from nanoseconds to seconds for calculation. -3. Improved the `SetTimeZone` method to achieve cross-system compatibility, allowing only a global setting of the time zone once, with errors returned for multiple calls with different time zones: [Time Management-Time Zone Setting](../docs/组件列表/系统相关/时间管理-gtime/时间管理-时区设置.md) +3. Improved the `SetTimeZone` method to achieve cross-system compatibility, allowing only a global setting of the time zone once, with errors returned for multiple calls with different time zones: [Time - Time Zone](../docs/组件列表/系统相关/时间管理-gtime/时间管理-时区设置.md) ### Text Processing @@ -157,10 +157,10 @@ Complete change list: [https://github.com/gogf/gf/compare/v2.2.0...v2.3.1](https ## Development Tools -1. Added `gf fix` command for automatically updating local code incompatible changes when upgrading from lower to higher versions: [Compatibility Fix-fix](../docs/开发工具/兼容修复-fix.md) -2. Added `gf up` command to upgrade local framework versions to the latest framework version: [Framework Upgrade-up](../docs/开发工具/框架升级-up.md) +1. Added `gf fix` command for automatically updating local code incompatible changes when upgrading from lower to higher versions: [Compatibility Fix](../docs/开发工具/兼容修复-fix.md) +2. Added `gf up` command to upgrade local framework versions to the latest framework version: [Version Upgrade](../docs/开发工具/框架升级-up.md) 3. Improved `gf build` command to add environment variable information printing before building. -4. Improved `gf pack` command to add `KeepPath` parameter to control whether to keep the relative path after resource packaging: [Resource Packaging-pack](../docs/开发工具/资源打包-pack.md) +4. Improved `gf pack` command to add `KeepPath` parameter to control whether to keep the relative path after resource packaging: [Resource Packing](../docs/开发工具/资源打包-pack.md) 5. Improved `gf gen dao` command with `tx` parameter in generated `Transaction` methods changed from object pointer to interface. ## Compatibility Warning diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.4 2023-04-24.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.4 2023-04-24.md index 401cc2d97db..66812f9c44c 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.4 2023-04-24.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.4 2023-04-24.md @@ -21,7 +21,7 @@ Full code changes: [v2.3.0...v2.4.0](https://github.com/gogf/gf/compare/v2.3.0.. ## New Features -Official release of microservices development features and addition of a complete microservices development section on the official website: [Microservices Development](../docs/微服务开发/微服务开发.md) +Official release of microservices development features and addition of a complete microservices development section on the official website: [Microservice Development](../docs/微服务开发/微服务开发.md) ## Functional Improvements @@ -57,7 +57,7 @@ Official release of microservices development features and addition of a complet 1. Added `SetDiscovery` and `SetBuilder` methods to allow callers to customize client service discovery and load balancing interface implementations. 2. `ghttp` 1. Improved support for reading specified parameters from `Header/Cookie` when receiving parameters, supporting the specification of reading `Header/Cookie` in the route's `in` tag (`in:header/cookie`). -2. Improved `ResponseWriter` to implement the `http.Flusher` interface, simplifying the user's `Stream` output development logic: [Data Return - Stream Return](../docs/WEB服务开发/数据返回/数据返回-Stream返回.md) +2. Improved `ResponseWriter` to implement the `http.Flusher` interface, simplifying the user's `Stream` output development logic: [Response - Streaming](../docs/WEB服务开发/数据返回/数据返回-Stream返回.md) 3. Improved link tracing implementation logic to prevent issues from being ignored when an error occurs in reading submitted content internally. 4. Improved parameter reading logic to prevent `r.GetRequestMap()` from returning content that includes `form-data` form `body` information: [https://github.com/gogf/gf/issues/2261](https://github.com/gogf/gf/issues/2261) 5. Improved internal context reception logic: @@ -71,7 +71,7 @@ Official release of microservices development features and addition of a complet 1. `gcmd` 1. Improved `AddObject` method to allow directly adding specified `*Command` or standardized `Object` objects as subcommands. 2. `gctx` -1. Fixed missing `TraceID` issue in `GetInitCtx` method: [Context-gctx](../docs/组件列表/系统相关/上下文-gctx.md) +1. Fixed missing `TraceID` issue in `GetInitCtx` method: [Context](../docs/组件列表/系统相关/上下文-gctx.md) 3. `gfile` 1. Improved `Temp` method to align basic logic implementation with standard library `os.TempDir`, avoiding temporary directory conflict issues during single-machine collaboration. 4. `gtimer` @@ -110,13 +110,13 @@ Official release of microservices development features and addition of a complet #### Microservice Scaffolding -1. Added `grpcx` microservice component for microservice development using the `grpc` communication protocol: [Microservices Development](../docs/微服务开发/微服务开发.md) +1. Added `grpcx` microservice component for microservice development using the `grpc` communication protocol: [Microservice Development](../docs/微服务开发/微服务开发.md) ## Development Tools -1. Added `gf gen pb` command for compiling `proto` files to generate `go pb` files: [Protocol Compilation-gen pb](../docs/开发工具/代码生成-gen/协议编译-gen%20pb.md) -2. Added `gf gen pbentity` command for automatically generating `proto` data structure definition files for database tables: [Database Table PB-gen pbentity](../docs/开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) -3. Added `gf gen enums` command for parsing specified directory `go` files and automatically generating `enums` data files based on enumeration definition specifications, mainly used for `OpenAPI` interface documentation display (experimental feature): [Enumeration Maintenance-gen enums](../docs/开发工具/代码生成-gen/枚举维护-gen%20enums.md) +1. Added `gf gen pb` command for compiling `proto` files to generate `go pb` files: [Protobuf Compilation](../docs/开发工具/代码生成-gen/协议编译-gen%20pb.md) +2. Added `gf gen pbentity` command for automatically generating `proto` data structure definition files for database tables: [DB Table To Protobuf](../docs/开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) +3. Added `gf gen enums` command for parsing specified directory `go` files and automatically generating `enums` data files based on enumeration definition specifications, mainly used for `OpenAPI` interface documentation display (experimental feature): [Enums Maintenance](../docs/开发工具/代码生成-gen/枚举维护-gen%20enums.md) 4. Improved `gf up` command by adding tool `CLI` automatic upgrade feature. 5. Improved `gf gen service` command to stop auto-generating methods into the interface definition file after the method's comment. 6. Improved `gf build` command by adding `DumpENV` option to control whether to print environment information used during compilation, with default setting off. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.5 2023-07-17.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.5 2023-07-17.md index 2d4b005c8a9..21fa1f915f9 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.5 2023-07-17.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.5 2023-07-17.md @@ -11,8 +11,8 @@ Hello everyone, the `GoFrame` framework has officially released version `v2.5.0` This version mainly focuses on improvements to existing functional components and development tools, including: -- The development tool introduces a new `gf gen ctrl` command to standardize the definition and development of API interfaces, and generate code for controllers and SDKs to improve development efficiency, addressing issues of interface standardization and efficiency in `Golang` project development. For details, please refer to: [Interface Specification-gen ctrl](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md). -- The existing `gf gen dao` command adds a `TypeMapping` feature, allowing developers to customize the `Golang` type of entity object properties generated from database tables: [Data Specification-gen dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +- The development tool introduces a new `gf gen ctrl` command to standardize the definition and development of API interfaces, and generate code for controllers and SDKs to improve development efficiency, addressing issues of interface standardization and efficiency in `Golang` project development. For details, please refer to: [Controller Generating](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md). +- The existing `gf gen dao` command adds a `TypeMapping` feature, allowing developers to customize the `Golang` type of entity object properties generated from database tables: [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) For other changes, please refer to the following `change log`. `Enjoy!` 🍺🍺🍺🍺🍺🍺🍺🍺 @@ -41,14 +41,14 @@ Full code changes: [v2.4.0...v2.5.0](https://github.com/gogf/gf/compare/v2.4.0.. 6. `gsel` 1. Fixed locking mechanism issues for `Endpoints` updates in the `RoundRobin` implementation. 7. `glog` - 1. Added `TimeFormat` configuration for customizing the time format of log output: [Logging Component - Configuration Management](../docs/核心组件/日志组件/日志组件-配置管理.md) + 1. Added `TimeFormat` configuration for customizing the time format of log output: [Logging - Configuration](../docs/核心组件/日志组件/日志组件-配置管理.md) 2. Improved `Rotation` implementation to support log file splitting for short-running programs. 8. `gtag` 1. Added `GetGlobalEnums` method to obtain globally registered enum types. 9. `gutil` 1. Added `DumpJson` method to format and print any type of variable to the terminal in `JSON`, making it easier for human reading. 10. `gvalid` - 1. Added `enums` validation rule for automatic recognition and validation of enum types: [Data Validation - Validation Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) + 1. Added `enums` validation rule for automatic recognition and validation of enum types: [Data Validation - Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) ## Community Components @@ -61,9 +61,9 @@ Full code changes: [v2.4.0...v2.5.0](https://github.com/gogf/gf/compare/v2.4.0.. ## Development Tools -1. Added `gf gen ctrl` command for compiling `api` definition directories, automatically generating standardized `controller`, `HTTP SDK` code: [Interface Specification-gen ctrl](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md) -2. Improved `gf gen dao` command, added `TypeMapping` feature, allowing developers to customize the mapping of data table field types and generated `Go` entity data structure property types, and conveniently introduce third-party package types (such as `decimal` package for high-precision types): [Data Specification-gen dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) -3. Improved `gf gen enums` command, changed `Prefix` parameter to `Prefixes` to support specifying prefixes for multiple generated enum type packages: [Enum Maintenance-gen enums](../docs/开发工具/代码生成-gen/枚举维护-gen%20enums.md) +1. Added `gf gen ctrl` command for compiling `api` definition directories, automatically generating standardized `controller`, `HTTP SDK` code: [Controller Generating](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md) +2. Improved `gf gen dao` command, added `TypeMapping` feature, allowing developers to customize the mapping of data table field types and generated `Go` entity data structure property types, and conveniently introduce third-party package types (such as `decimal` package for high-precision types): [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +3. Improved `gf gen enums` command, changed `Prefix` parameter to `Prefixes` to support specifying prefixes for multiple generated enum type packages: [Enums Maintenance](../docs/开发工具/代码生成-gen/枚举维护-gen%20enums.md) 4. Improved `gf gen service` command: - Added method comment generation in the generated `service` file. - When there is an `import` conflict in the generated `service` file, automatically generate `import alias`. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.6 2023-12-19.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.6 2023-12-19.md index aecfdbaf561..b27bd6c5caa 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.6 2023-12-19.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.6 2023-12-19.md @@ -24,11 +24,11 @@ The minimum required Golang version for the framework has been upgraded from `v1 1. `g` 1. Added the `g.Go` method to conveniently create asynchronous `goroutines` with `ctx` and `recover` parameters. 2. `glog` - 1. Improved the `Handler` callback processing function's `HandlerInput` input parameters by adding `Values` parameter, which is the input parameter list for log printing: [Log Component-Handler](../docs/核心组件/日志组件/日志组件-Handler.md) - 2. Added a general method `HandlerStructure` to print log content with structured parameters: [Log Component-Handler](../docs/核心组件/日志组件/日志组件-Handler.md) + 1. Improved the `Handler` callback processing function's `HandlerInput` input parameters by adding `Values` parameter, which is the input parameter list for log printing: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) + 2. Added a general method `HandlerStructure` to print log content with structured parameters: [Logging - Handler](../docs/核心组件/日志组件/日志组件-Handler.md) 3. Improved the log file `rotate` logic to solve the problem of failing to `rotate` files in certain scenarios. 3. `gerror` - 1. Added error stack mode (`brief/detail`): In `brief` mode, the error stack will only print non-framework component stacks. In `detail` mode, the error stack will print the complete framework code call chain. The framework uses `brief` mode by default: [Error Handling-Other Features](../docs/核心组件/错误处理/错误处理-其他特性.md) + 1. Added error stack mode (`brief/detail`): In `brief` mode, the error stack will only print non-framework component stacks. In `detail` mode, the error stack will print the complete framework code call chain. The framework uses `brief` mode by default: [Error Handling - Other Features](../docs/核心组件/错误处理/错误处理-其他特性.md) 4. `gcode` 1. Added `gcode.CodeInternalPanic` error code, and all `panic` errors captured by framework components will return with this error code. 5. `gmap` @@ -43,10 +43,10 @@ The minimum required Golang version for the framework has been upgraded from `v1 5. Added `Model.LeftJoinOnFields/RightJoinOnFields/InnerJoinOnFields` methods, making it easier to implement `Join` operations. 6. Fixed the implementation issue of the `Model.WherePrefixNotIn` method. 8. `gredis` - 1. Added `Cluster` configuration option to specify whether to use cluster mode: [Redis-Configuration Management](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) - 2. Added `Protocol` configuration option to specify the `RESP` version: [Redis-Configuration Management](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) + 1. Added `Cluster` configuration option to specify whether to use cluster mode: [Redis - Configuration](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) + 2. Added `Protocol` configuration option to specify the `RESP` version: [Redis - Configuration](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) 9. `gi18n` - 1. Improved translation file reading logic, supporting automatic file reading from resource managers: [I18N Internationalization-Configuration Management](../docs/核心组件/I18N国际化/I18N国际化-配置管理.md) + 1. Improved translation file reading logic, supporting automatic file reading from resource managers: [I18N - Configuration](../docs/核心组件/I18N国际化/I18N国际化-配置管理.md) 10. `gclient` 1. Added `NoUrlEncode` feature, allowing `GET` requests to not automatically perform `UrlEncode` on parameters. 11. `ghttp` @@ -56,7 +56,7 @@ The minimum required Golang version for the framework has been upgraded from `v1 2. Removed redundant description information from `Path` objects and `Method` objects. 3. Converts the example field type of the interface into the corresponding data type based on the parameter data type. 13. `gcfg` - 1. Added `AdapterContent` configuration interface implementation, allowing configuration management through specific configuration content: [Configuration Management-AdapterContent](../docs/核心组件/配置管理/配置管理-接口化设计/配置管理-AdapterContent.md) + 1. Added `AdapterContent` configuration interface implementation, allowing configuration management through specific configuration content: [Configuration - AdapterContent](../docs/核心组件/配置管理/配置管理-接口化设计/配置管理-AdapterContent.md) 14. `gctx` 1. Added `NeverDone` method, which wraps a given `ctx` object and returns a `ctx` object that never expires or is `Cancelled`. 15. `gfile` @@ -107,10 +107,10 @@ The minimum required Golang version for the framework has been upgraded from `v1 ## Development Tools 1. Improved the installation method of the `cli` tool to additionally support `go install` installation: `go install github.com/gogf/gf/cmd/gf/v2@latest` -2. Improved `gf run` command by adding `WatchPaths/-w` configuration, allowing specified path list monitoring to avoid the `too many opened files` issue caused by monitoring all files in local projects by default: [Auto-Compile-run](../docs/开发工具/自动编译-run.md) -3. Improved `gf gen ctrl` command by adding `Merge/-m` option to control the generation of controller code files according to the `api` layer rather than splitting them into different files based on `api` interfaces: [Interface Specification-gen ctrl](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md) -4. Improved `gf gen dao` command by adding `RemoveFieldPrefix/-rf` option to automatically remove the prefix of generated table field names: [Data Specification-gen dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) -5. Improved `gf gen pbentity` command by adding `RemoveFieldPrefix/-rf` option to automatically remove the prefix of generated table field names: [Table PB-gen pbentity](../docs/开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) +2. Improved `gf run` command by adding `WatchPaths/-w` configuration, allowing specified path list monitoring to avoid the `too many opened files` issue caused by monitoring all files in local projects by default: [Auto Compiling](../docs/开发工具/自动编译-run.md) +3. Improved `gf gen ctrl` command by adding `Merge/-m` option to control the generation of controller code files according to the `api` layer rather than splitting them into different files based on `api` interfaces: [Controller Generating](../docs/开发工具/代码生成-gen/接口规范-gen%20ctrl.md) +4. Improved `gf gen dao` command by adding `RemoveFieldPrefix/-rf` option to automatically remove the prefix of generated table field names: [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) +5. Improved `gf gen pbentity` command by adding `RemoveFieldPrefix/-rf` option to automatically remove the prefix of generated table field names: [DB Table To Protobuf](../docs/开发工具/代码生成-gen/数据表PB-gen%20pbentity.md) 6. Improved `gf gen service` command to automatically generate method comments for objects in the `logic` module into the `service` interface file. 7. Improved `gf version/gf -v` command for more detailed tool version, runtime environment, and framework information. 8. Improved the initialization efficiency of development tools, removing `init` package method logic that affected initialization efficiency. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.7 2024-04-09.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.7 2024-04-09.md index 6e378c18af0..4f3f08d82e5 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.7 2024-04-09.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.7 2024-04-09.md @@ -9,11 +9,11 @@ description: "GoFrame framework releases version v2.7.0, introducing a new metri Hello everyone, the `GoFrame` framework has officially released version `v2.7.0` today! 👏👏👏👏👏👏👏👏👏 -The highlight of this version is the provision of the `metric` monitoring component. The main library offers an interface-based `metric` design, and the community component provides an `OpenTelemetry`-based `metric` interface implementation. This feature is disabled by default and only enabled by default when specific interface implementations or community implementations are introduced. The current version also provides implementations for monitoring metrics of `HTTP Client&Server`, and metrics for other components will be provided in subsequent versions. For details, please refer to the documentation: [Service Monitoring and Alerts](../docs/服务可观测性/服务监控告警/服务监控告警.md). +The highlight of this version is the provision of the `metric` monitoring component. The main library offers an interface-based `metric` design, and the community component provides an `OpenTelemetry`-based `metric` interface implementation. This feature is disabled by default and only enabled by default when specific interface implementations or community implementations are introduced. The current version also provides implementations for monitoring metrics of `HTTP Client&Server`, and metrics for other components will be provided in subsequent versions. For details, please refer to the documentation: [Service Metrics](../docs/服务可观测性/服务监控告警/服务监控告警.md). Additionally, this version implements support for the `Save` operation for `dm/mssql/oracle/pgsql/sqlite` databases, thanks to community member [https://github.com/oldme-git](https://github.com/oldme-git) 💖. -Moreover, it is worth mentioning that in this version, we have added an ignore symbol `#` for the second-level field of the `gcron` scheduled task component, used to convert the `6`-segment cron pattern into a `5`-segment Linux crontab pattern, addressing the issue of task execution inaccuracy due to delay at the second-level granularity: [Scheduled Task - Expression](../docs/组件列表/系统相关/定时任务-gcron/定时任务-表达式.md). +Moreover, it is worth mentioning that in this version, we have added an ignore symbol `#` for the second-level field of the `gcron` scheduled task component, used to convert the `6`-segment cron pattern into a `5`-segment Linux crontab pattern, addressing the issue of task execution inaccuracy due to delay at the second-level granularity: [Cron Job - Expressions](../docs/组件列表/系统相关/定时任务-gcron/定时任务-表达式.md). Due to the numerous changes in this version, below is an introduction to some important improvements in Chinese. For the detailed `ChangeLog`, please refer to: [https://github.com/gogf/gf/releases/tag/v2.7.0](https://github.com/gogf/gf/releases/tag/v2.7.0). @@ -26,14 +26,14 @@ Thanks to all the contributors who participated in this version 💖! ## Component Improvements 1. `gdb` - 1. Added `Stats` interface definition and implementation for obtaining connection pool information maintained by the current database `orm` object: [ORM Advanced Features - Connection Pool Status](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-连接池状态.md) + 1. Added `Stats` interface definition and implementation for obtaining connection pool information maintained by the current database `orm` object: [ORM Senior - Connection Pool](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-连接池状态.md) 2. Added `FormatUpsert` interface definition and implementation, used for writing/updating operations for different database types, i.e., `Save` operation. 3. Added `SqlType` type, changing the existing `sql type` type definition from `string` to `SqlType` type. 4. Added `Model.OnConflict` method for implementing update policy when field unique key conflicts for some database types, particularly for `Save` operation. 5. Fixed the issue where the `ClearTableFieldsAll` method was not effective. 2. `ghttp` - 1. Added `MiddlewareNeverDoneCtx` middleware, which developers can choose to use to avoid issues related to `context cancel` on the server side when clients cancel requests: [Common Issues](../docs/WEB服务开发/常见问题.md) - 2. Added monitoring metric implementation for `http server`, which is disabled by default and does not affect performance, unless the `metrics` feature is enabled: [HTTPServer - Monitoring Metrics](../docs/WEB服务开发/高级特性/HTTPServer-监控指标.md) + 1. Added `MiddlewareNeverDoneCtx` middleware, which developers can choose to use to avoid issues related to `context cancel` on the server side when clients cancel requests: [FAQ](../docs/WEB服务开发/常见问题.md) + 2. Added monitoring metric implementation for `http server`, which is disabled by default and does not affect performance, unless the `metrics` feature is enabled: [HTTPServer - Metrics](../docs/WEB服务开发/高级特性/HTTPServer-监控指标.md) 3. Improved `tracing` records, changing the `span` name from `query uri` to `route uri` for easier aggregation when viewing. 4. Changed the type of `EnterTime` and `LeaveTime` properties in the `Request` object from `int64` to `*gtime.Time`. 5. Marked the `WebSocket` method as deprecated, it will be removed in future major versions, along with the removal of `http server's` built-in coupling support for `websocket`. It is recommended to use other open-source `websocket` components with `http server` for more decoupled flexibility in the future. @@ -44,9 +44,9 @@ Thanks to all the contributors who participated in this version 💖! 10. The `http server` no longer prints built-in middleware when starting route printing. 3. `gclient` 1. Fixed the issue that forced all `http` requests to go through service discovery domain name resolution when service discovery is enabled. - 2. Added monitoring metric implementation for `http client`, which is disabled by default and does not affect performance, unless the `metrics` feature is enabled: [HTTPClient - Monitoring Metrics](../docs/WEB服务开发/HTTPClient/HTTPClient-监控指标.md) + 2. Added monitoring metric implementation for `http client`, which is disabled by default and does not affect performance, unless the `metrics` feature is enabled: [HTTPClient - Metrics](../docs/WEB服务开发/HTTPClient/HTTPClient-监控指标.md) 4. `gcron` - 1. Added an ignore symbol `#`, using it as a placeholder for the **second-level field** in the `cron pattern`, indicating the ignore of the second-level field, converting a `6`-segment `cron pattern` to a `5`-segment `linux crontab pattern`: [Scheduled Task - Expression](../docs/组件列表/系统相关/定时任务-gcron/定时任务-表达式.md) + 1. Added an ignore symbol `#`, using it as a placeholder for the **second-level field** in the `cron pattern`, indicating the ignore of the second-level field, converting a `6`-segment `cron pattern` to a `5`-segment `linux crontab pattern`: [Cron Job - Expressions](../docs/组件列表/系统相关/定时任务-gcron/定时任务-表达式.md) 2. Fixed an issue where specified second-level tasks (for example `2 * * * * *`) might execute twice if there is inaccurate time at the underlying level. 5. `gerror` 1. Fixed an issue with the recursive logic being ineffective in the `gerror.HasCode` method. @@ -62,7 +62,7 @@ Thanks to all the contributors who participated in this version 💖! 10. `glog` 1. Fixed the redundant `rotate` issue of `.gz` suffix log compressed files related to the `rotate` feature. 11. `gmetric` - 1. Added `gmetric` component using a decoupled design, only providing the interface definition and `Noop` implementation, with the real implementation in community components. The `metric` feature will only be enabled when specific implementations are introduced: [Service Monitoring and Alerts](../docs/服务可观测性/服务监控告警/服务监控告警.md) + 1. Added `gmetric` component using a decoupled design, only providing the interface definition and `Noop` implementation, with the real implementation in community components. The `metric` feature will only be enabled when specific implementations are introduced: [Service Metrics](../docs/服务可观测性/服务监控告警/服务监控告警.md) 12. `gproc` 1. Fixed an issue where process parameter parsing might fail under `windows`. 2. Improved `Signal` signal listening implementation, allowing adding signal handling methods at runtime. @@ -82,14 +82,14 @@ Thanks to all the contributors who participated in this version 💖! 4. Added support for the `Save` operation to the `contrib/drivers/pgsql` component. 5. Added support for the `Save` operation to the `contrib/drivers/sqlite` component. 6. Added support for the `Save` operation to the `contrib/drivers/sqlitecgo` component. -2. Added the `contrib/metric/otelmetric` component to support `OpenTelemetry Metric`: [Service Monitoring and Alerts](../docs/服务可观测性/服务监控告警/服务监控告警.md) +2. Added the `contrib/metric/otelmetric` component to support `OpenTelemetry Metric`: [Service Metrics](../docs/服务可观测性/服务监控告警/服务监控告警.md) 3. Improvements to the `contrib/nosql/redis` component: - 1. Added `SentinelUsername` and `SentinelPassword` parameter configurations to expand support for the `Redis Sentinel` mode: [Redis Configuration Management](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) - 2. Improved the `Redis` interface implementation, allowing developers to flexibly customize and extend the implementation of the community component object `redis.Redis` type: [Redis Interface Design](../docs/组件列表/NoSQL%20Redis/Redis-接口化设计.md) + 1. Added `SentinelUsername` and `SentinelPassword` parameter configurations to expand support for the `Redis Sentinel` mode: [Redis - Configuration](../docs/组件列表/NoSQL%20Redis/Redis-配置管理.md) + 2. Improved the `Redis` interface implementation, allowing developers to flexibly customize and extend the implementation of the community component object `redis.Redis` type: [Redis - Interface](../docs/组件列表/NoSQL%20Redis/Redis-接口化设计.md) 4. Improved the `contrib/registry/etcd` component, allowing developers to configure verification information for `etcd` connections. 5. Improvements to the `contrib/rpc/grpcx` component: 1. Safely truncate request content when the `tracing` feature is enabled. - 2. Added support for the `logger` configuration option, allowing configuration of the `grpc server` log object through the `logger` configuration option in the configuration file: [Server Configuration](../docs/微服务开发/服务端配置.md) + 2. Added support for the `logger` configuration option, allowing configuration of the `grpc server` log object through the `logger` configuration option in the configuration file: [GRPC Server Configuration](../docs/微服务开发/服务端配置.md) 6. Improvements to the `contrib/trace/otlphttp` and `contrib/trace/otlpgrpc` components, fixing data loss issues of `trace` that may occur even with normal `ShutDown` in short process scenarios. ## Development Tools diff --git a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.8 2024-11-18.md b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.8 2024-11-18.md index ac1275c65bf..6453de27c05 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/release/v2.8 2024-11-18.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/release/v2.8 2024-11-18.md @@ -50,16 +50,16 @@ For comprehensive code changes, please refer to: [https://github.com/gogf/gf/com 3. The `contrib/trace/jaeger` component has been removed from the source code repository. 4. The parameter of `Load*` methods in the `encoding/gjson` component has been adjusted from `interface{}` to `[]byte` to improve performance. 5. The port parameter of the `StartPProfServer` method in the `net/ghttp` component has been changed from `port int` to `address string` for increased flexibility. -6. The `net/gudp` component has been refactored, with individual method parameter adjustments: [UDP Component](../docs/组件列表/网络组件/UDP组件/UDP组件.md) +6. The `net/gudp` component has been refactored, with individual method parameter adjustments: [UDP](../docs/组件列表/网络组件/UDP组件/UDP组件.md) ## Component Improvements 1. `database/gdb` - - Time maintenance features have been enhanced to support integer fields. When `created_at/updated_at/deleted_at` are integer fields, they will be updated with timestamps. For details, see: [ORM Chained Operations - Time Maintenance](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-时间维护/ORM链式操作-时间维护.md) - - Added the `Model.Exist` method to determine if data that meets given conditions exists: [ORM Query - Exist](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Exist.md) - - Added support for `time/year` field types in the database: [ORM Advanced Features - Type Recognition](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-类型识别.md) + - Time maintenance features have been enhanced to support integer fields. When `created_at/updated_at/deleted_at` are integer fields, they will be updated with timestamps. For details, see: [ORM Model - Time Fields](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-时间维护/ORM链式操作-时间维护.md) + - Added the `Model.Exist` method to determine if data that meets given conditions exists: [Model Query - Exist](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-Exist.md) + - Added support for `time/year` field types in the database: [ORM Senior - Type Recognition](../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性-类型识别.md) - Added the `OrderRandomFunction` interface method, implemented and supported the `OrderRandom` sorting method for common databases. - - Improved the `Model.Fields` method to support `gdb.Raw` type parameters: [ORM Chained Operations - Field Retrieval](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段获取.md) - - Enhanced the `With` feature in `orm` tags to support `unscoped`: [Model Association - Static Association - With Feature](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) + - Improved the `Model.Fields` method to support `gdb.Raw` type parameters: [ORM Model - Fields Retrieval](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段获取.md) + - Enhanced the `With` feature in `orm` tags to support `unscoped`: [Model Association - With](../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) - Added support for `unix socket` local database service connections in the configuration file. - Removed `sql` statements from trace information to reduce the size of the `trace` package. - Improved performance of query result conversion to `struct`. @@ -80,16 +80,16 @@ For comprehensive code changes, please refer to: [https://github.com/gogf/gf/com - Adjusted `Load*` method parameters from `interface{}` to `[]byte` to improve performance. 6. `os/gcron` - - Added `StopGracefully` method to allow waiting for currently executing scheduled tasks to complete before stopping: [Scheduled Tasks - Basic Usage](../docs/组件列表/系统相关/定时任务-gcron/定时任务-基本使用.md) + - Added `StopGracefully` method to allow waiting for currently executing scheduled tasks to complete before stopping: [Cron Job - Usage](../docs/组件列表/系统相关/定时任务-gcron/定时任务-基本使用.md) 7. `os/gfsnotify` - - Improved file recursive monitoring implementation so that when a directory is being monitored, newly created subdirectories within it, or their subdirectories, will also be recursively monitored: [File Monitoring - gfsnotify](../docs/组件列表/系统相关/文件监控-gfsnotify/文件监控-gfsnotify.md) + - Improved file recursive monitoring implementation so that when a directory is being monitored, newly created subdirectories within it, or their subdirectories, will also be recursively monitored: [File Watching](../docs/组件列表/系统相关/文件监控-gfsnotify/文件监控-gfsnotify.md) 8. `test/gtest` - Improved `AssertIN/AssertNI` assertion methods by adding support for substring containment assertions. 9. `util/gvalid` - - Added `required-if-all` validation rule, where a parameter is mandatory if all specified parameters and their values are equal: [Data Validation - Validation Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) + - Added `required-if-all` validation rule, where a parameter is mandatory if all specified parameters and their values are equal: [Data Validation - Rules](../docs/核心组件/数据校验/数据校验-校验规则.md) - Enhanced `phone` validation rule by adding support for `171` series phone numbers. 10. `util/gconv` @@ -117,7 +117,7 @@ For comprehensive code changes, please refer to: [https://github.com/gogf/gf/com - Added `Handler` interface to allow users to customize the handling of `HTTP Client` return data. ## Development Tools -1. Improved the `gf init` command by adding the `-a/monoApp` option for creating new application project templates in a large repository: [Project Creation - init](../docs/开发工具/项目创建-init.md) +1. Improved the `gf init` command by adding the `-a/monoApp` option for creating new application project templates in a large repository: [Project Scaffold](../docs/开发工具/项目创建-init.md) 2. Enhanced the `gf pack` command by adding support for command parameter options from a configuration file, with the configuration path as `gfcli.pack`. @@ -130,7 +130,7 @@ For comprehensive code changes, please refer to: [https://github.com/gogf/gf/com - Automatically deletes temporary old process binary files when a new process replaces the old one at the end of a temporary subprocess. 6. Improved the `gf gen dao` command: - - Added `field mapping` feature to support specifying field configurations for generated `Golang` data types: [Data Specification - gen dao](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) + - Added `field mapping` feature to support specifying field configurations for generated `Golang` data types: [Dao/Do/Entity Generating](../docs/开发工具/代码生成-gen/数据规范-gen%20dao.md) - Automatically identifies integer fields with a length of `1`, such as `bit(1)/tinyint(1)/int(1)`, as `bool` type `Golang` data types. - Automatically reads the directory name of generated code files as the package name for generating `dao/do/entity` files. - Due to database restrictions, the `cli` has removed default support for the `dm` database. If needed, please manually modify the source code to install `cli`. diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.15 2020-12-31.md" "b/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.15 2020-12-31.md" index 381e5a20203..a8143a5bed2 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.15 2020-12-31.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.15 2020-12-31.md" @@ -39,33 +39,33 @@ Open source is not easy, and with your understanding and support, happiness is a 1. `ghttp` - Improved `HTTPClient` `GET` request methods, automatically constructing parameters as `QueryString` instead of `Body` to ensure compatibility with other servers. - - Added default value setting feature to `Request` objects: [Request Input - Default Value Binding](../../docs/WEB服务开发/请求输入/请求输入-默认值绑定.md) - - Added `Request.SetCtx` method for custom context variables, commonly used in middleware/interceptors: [Request Input - Context](../../docs/WEB服务开发/请求输入/请求输入-Context.md) - - Added `Request` variable in template parsing to get client request parameters regardless of `QueryString/Form` type: [Data Return - Template Parsing](../../docs/WEB服务开发/数据返回/数据返回-模板解析.md) + - Added default value setting feature to `Request` objects: [Request - Default Value](../../docs/WEB服务开发/请求输入/请求输入-默认值绑定.md) + - Added `Request.SetCtx` method for custom context variables, commonly used in middleware/interceptors: [Request - Context](../../docs/WEB服务开发/请求输入/请求输入-Context.md) + - Added `Request` variable in template parsing to get client request parameters regardless of `QueryString/Form` type: [Response - Template Parsing](../../docs/WEB服务开发/数据返回/数据返回-模板解析.md) - Improved `Cookie` functionality. For setting `Cookies` with the same expiration as `Session`, refer to: [Cookie#Cookie Session Expiry](https://wiki.goframe.org/display/gf/Cookie#Cookie-Cookie%E4%BC%9A%E8%AF%9D%E8%BF%87%E6%9C%9F) - Added `ALLMap` method in group route registration for bulk route registration: [Group Route#Bulk Registration](https://wiki.goframe.org/pages/viewpage.action?pageId=1114517#id-%E5%88%86%E7%BB%84%E8%B7%AF%E7%94%B1-%E6%89%B9%E9%87%8F%E6%B3%A8%E5%86%8C) - - Introduced `CRSF` plugin documentation: [CSRF Defense Settings](../../docs/WEB服务开发/高级特性/CSRF防御设置.md) + - Introduced `CRSF` plugin documentation: [CSRF](../../docs/WEB服务开发/高级特性/CSRF防御设置.md) - Other feature and detail improvements. 2. `gdb` - - Added `Ctx` method for asynchronous `IO` control or custom context information transmission, especially for tracing: [ORM Context Variables](../../docs/核心组件/数据库ORM/ORM上下文变量.md) + - Added `Ctx` method for asynchronous `IO` control or custom context information transmission, especially for tracing: [ORM - Context](../../docs/核心组件/数据库ORM/ORM上下文变量.md) - Added `Raw` type for embedding raw `SQL` statements which will directly submit to the underlying database driver without any processing: [Writing#RawSQL Statement Embedding](https://wiki.goframe.org/pages/viewpage.action?pageId=1114344#id-%E5%86%99%E5%85%A5%E4%BF%9D%E5%AD%98-RawSQL%E8%AF%AD%E5%8F%A5%E5%B5%8C%E5%85%A5), [Updating#RawSQL Statement Embedding](https://wiki.goframe.org/pages/viewpage.action?pageId=1114238#id-%E6%9B%B4%E6%96%B0%E5%88%A0%E9%99%A4-RawSQL%E8%AF%AD%E5%8F%A5%E5%B5%8C%E5%85%A5) - - Improved `Fields/Fields/Data` methods with automatic mapping detection and filtering for input `map/struct` parameters to database fields: [ORM Advanced Features#Field Mapping](../../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性.md) - - Configurable `InsertedAt/UpdatedAt/DeletedAt` field names and `TimeMaintainDisabled` setting added to disable time filling and soft delete features: [ORM Chained Operations - Time Maintenance](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-时间维护/ORM链式操作-时间维护.md) + - Improved `Fields/Fields/Data` methods with automatic mapping detection and filtering for input `map/struct` parameters to database fields: [ORM - Senior Features](../../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性.md) + - Configurable `InsertedAt/UpdatedAt/DeletedAt` field names and `TimeMaintainDisabled` setting added to disable time filling and soft delete features: [ORM Model - Time Fields](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-时间维护/ORM链式操作-时间维护.md) - Added `Counter` update feature for incrementing/decrementing field values: [Updating#Counter Update Feature](https://wiki.goframe.org/pages/viewpage.action?pageId=1114238#id-%E6%9B%B4%E6%96%B0%E5%88%A0%E9%99%A4-Counter%E6%9B%B4%E6%96%B0%E7%89%B9%E6%80%A7) - - Improved `ORM` timezone processing; see: [ORM Timezone Handling](../../docs/核心组件/数据库ORM/ORM时区处理.md) + - Improved `ORM` timezone processing; see: [ORM - Timezone](../../docs/核心组件/数据库ORM/ORM时区处理.md) - Other performance and usability detail improvements. - Improved some detail issues. - Enhanced unit tests. 3. `gerror` - Added `Newf/NewSkipf` methods for creating error objects: [Error Handling](../../docs/核心组件/错误处理/错误处理.md) - - Added support for error code features: [Error Handling - Error Code Usage](../../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) + - Added support for error code features: [Error Code - Example](../../docs/核心组件/错误处理/错误处理-错误码特性/错误处理-错误码使用.md) - Enhanced unit tests. 4. `gvalid` - Added `phone-loose` loose mobile number verification rule, allowing any `11`-digit number starting with `13/14/15/16/17/18/19`. - - Validation errors implement the `gerror` `Current() error` interface, allowing the use of `gerror.Current` to get the current first validation error: [Data Validation - Validation Results](../../docs/核心组件/数据校验/数据校验-校验结果.md) + - Validation errors implement the `gerror` `Current() error` interface, allowing the use of `gerror.Current` to get the current first validation error: [Data Validation - Result](../../docs/核心组件/数据校验/数据校验-校验结果.md) - Other detail improvements. - Enhanced unit tests. @@ -94,12 +94,12 @@ Open source is not easy, and with your understanding and support, happiness is a - Other detail improvements. 10. `gcmd` - - Improved default parameter parsing retrieval method: [Command Management - gcmd](../../docs/组件列表/系统相关/命令管理-gcmd.md) - - Added `GetWithEnv` method to retrieve from environment variables if a specified parameter is absent in the command line: [Command Management - gcmd](../../docs/组件列表/系统相关/命令管理-gcmd.md) + - Improved default parameter parsing retrieval method: [Command](../../docs/组件列表/系统相关/命令管理-gcmd.md) + - Added `GetWithEnv` method to retrieve from environment variables if a specified parameter is absent in the command line: [Command](../../docs/组件列表/系统相关/命令管理-gcmd.md) 11. `genv` - Added `SetMap` method for batch setting environment variables. - - Added `GetWithCmd` method to retrieve from command line parameters if a specified parameter is absent in environment variables: [Environment Variable - genv](../../docs/组件列表/系统相关/环境变量-genv.md) + - Added `GetWithCmd` method to retrieve from command line parameters if a specified parameter is absent in environment variables: [Environment](../../docs/组件列表/系统相关/环境变量-genv.md) 12. `gfile` - Deprecated `ReadByteLines` method; added `ReadLinesBytes` method. @@ -119,7 +119,7 @@ Open source is not easy, and with your understanding and support, happiness is a - Added built-in template function `map` to convert parameters to `map[string]interface{}` type. - Added built-in template function `maps` to convert parameters to `[]map[string]interface{}` type. - Added built-in template function `json` to convert parameters to `JSON` string type. - - Documented updates: [Template Functions - Built-in Functions](../../docs/核心组件/模板引擎/模板引擎-模板函数/模板函数-内置函数.md) + - Documented updates: [Template Funcs - Built-In](../../docs/核心组件/模板引擎/模板引擎-模板函数/模板函数-内置函数.md) - Other detail improvements. 17. `gconv` diff --git "a/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.16 2021-06-01.md" "b/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.16 2021-06-01.md" index 44102b5d83a..d47128a6b17 100644 --- "a/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.16 2021-06-01.md" +++ "b/i18n/en/docusaurus-plugin-content-docs/current/release/\345\216\206\345\217\262\347\211\210\346\234\254\350\256\260\345\275\225 v1.x/v1.16 2021-06-01.md" @@ -16,63 +16,63 @@ This documentation has been extensively updated, with the total development docu ## Important Features 1. The framework introduces **full tracing**, adopting the `OpenTelemetry` standard, currently integrating `HTTP Client&Server/GRPC Client&Server/ORM/Redis/Logging` components. For detailed introduction, please refer to the sections: - 1. [Tracing - Basic Examples](../../docs/服务可观测性/服务链路跟踪/链路跟踪-基本示例.md) - 2. [Tracing - HTTP Examples](../../docs/服务可观测性/服务链路跟踪/链路跟踪-HTTP示例/链路跟踪-HTTP示例.md) - 3. [Tracing - GRPC Examples](../../docs/服务可观测性/服务链路跟踪/链路跟踪-GRPC示例.md) + 1. [Tracing - Basic Example](../../docs/服务可观测性/服务链路跟踪/链路跟踪-基本示例.md) + 2. [Tracing - HTTP Example](../../docs/服务可观测性/服务链路跟踪/链路跟踪-HTTP示例/链路跟踪-HTTP示例.md) + 3. [Tracing - GRPC Example](../../docs/服务可观测性/服务链路跟踪/链路跟踪-GRPC示例.md) 2. The core database components have added the following features: 1. **Model Association**: - 1. [Model Association - Dynamic Association - ScanList](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-动态关联-ScanList.md) - 2. [Model Association - Static Association - With Feature](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) - 2. **Nested Transactions**: [ORM Transaction Management](../../docs/核心组件/数据库ORM/ORM事务处理/ORM事务处理.md) - 3. **Subquery** feature: [ORM Query - Subquery Feature](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-子查询特性.md) + 1. [Model Association - ScanList](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-动态关联-ScanList.md) + 2. [Model Association - With](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-模型关联/模型关联-静态关联-With特性.md) + 2. **Nested Transactions**: [ORM - Transaction](../../docs/核心组件/数据库ORM/ORM事务处理/ORM事务处理.md) + 3. **Subquery** feature: [Model Query - Subquery](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM查询-子查询特性.md) 4. Added **dozens** of ORM model operation methods (referencing `PHP Laravel`), it is highly recommended for those using `goframe` to take a look: - 1. [ORM Chain Operation (🔥Main Focus🔥)](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作.md) - 2. [ORM Chain Operation - Insert Save](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) - 3. [ORM Chain Operation - Update Delete](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-更新删除.md) - 4. [ORM Chain Operation - Data Query](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM链式操作-数据查询.md) -3. HTTP **client adds middleware interceptor** functionality, for details, please refer to the section: [HTTPClient - Interceptor/Middleware](../../docs/WEB服务开发/HTTPClient/HTTPClient-拦截器中间件.md) + 1. [ORM - Model 🔥](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作.md) + 2. [ORM Model - Insert/Save](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) + 3. [ORM Model - Update/Delete](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-更新删除.md) + 4. [ORM Model - Query](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM链式操作-数据查询.md) +3. HTTP **client adds middleware interceptor** functionality, for details, please refer to the section: [HTTPClient - Middleware](../../docs/WEB服务开发/HTTPClient/HTTPClient-拦截器中间件.md) 4. Extensive improvements to the data validation component: - 1. Added chain operation verification objects: [Data Validation - Validation Objects](../../docs/核心组件/数据校验/数据校验-校验对象.md) + 1. Added chain operation verification objects: [Data Validation - Object](../../docs/核心组件/数据校验/数据校验-校验对象.md) 2. Added support for `Context`, and enhanced support for powerful `I18N` international error information management. For details, please refer to the sections: - 1. [I18N Internationalization](../../docs/核心组件/I18N国际化/I18N国际化.md) - 2. [Data Validation - Custom Errors](../../docs/核心组件/数据校验/数据校验-自定义错误.md) - 3. Custom validation rules have been improved, with added features for local validation rule registration and full data validation: [Data Validation - Custom Rules](../../docs/核心组件/数据校验/数据校验-自定义规则/数据校验-自定义规则.md) -5. The timer component `gtimer` is fully restructured, removing the `TimingWheel` implementation and adopting a more robust `PriorityQueue` improved implementation. For details, refer to the section: [Timer - gtimer](../../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) + 1. [I18N](../../docs/核心组件/I18N国际化/I18N国际化.md) + 2. [Data Validation - Error Msg](../../docs/核心组件/数据校验/数据校验-自定义错误.md) + 3. Custom validation rules have been improved, with added features for local validation rule registration and full data validation: [Data Validation - Custom](../../docs/核心组件/数据校验/数据校验-自定义规则/数据校验-自定义规则.md) +5. The timer component `gtimer` is fully restructured, removing the `TimingWheel` implementation and adopting a more robust `PriorityQueue` improved implementation. For details, refer to the section: [Timer](../../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) 6. The framework's core foundational components have added a full error stack feature, allowing complete retrieval of error stack information for related components in the event of an error. This feature is only available in a well-designed, comprehensive foundational component framework. ## Functionality Improvements 1. `ORM` - 1. Added full tracing context `Context` parameter passing: [ORM Context Variables](../../docs/核心组件/数据库ORM/ORM上下文变量.md) During tracing, it will record `SQL` and database connection information (excluding sensitive configurations), and the component tracing information can be configured to be turned off. - 2. Further improved the `ORM` component logging, which is only valid in debug mode. For detailed introduction, refer to the section: [ORM Advanced Features](../../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性.md) + 1. Added full tracing context `Context` parameter passing: [ORM - Context](../../docs/核心组件/数据库ORM/ORM上下文变量.md) During tracing, it will record `SQL` and database connection information (excluding sensitive configurations), and the component tracing information can be configured to be turned off. + 2. Further improved the `ORM` component logging, which is only valid in debug mode. For detailed introduction, refer to the section: [ORM - Senior Features](../../docs/核心组件/数据库ORM/ORM高级特性/ORM高级特性.md) 3. Added dozens of `ORM` model operation methods referencing `PHP Laravel`, such as `InsertAndGetId`, `Min/Max/Avg/Sum`, `Increment/Decrement`, `WhereBetween/WhereLike/WhereIn/WhereNull`, `OrderAsc/OrderDesc/OrderRandom`, etc. It is highly recommended for those using `goframe` to take a look, for details, refer to the section: - 1. [ORM Chain Operation (🔥Main Focus🔥)](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作.md) - 2. [ORM Chain Operation - Insert Save](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) - 3. [ORM Chain Operation - Update Delete](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-更新删除.md) - 4. [ORM Chain Operation - Data Query](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM链式操作-数据查询.md) - 4. In the new version, the database `ORM` chain operation has enabled field filtering by default. Parameters that cannot be intelligently matched with table fields will be automatically filtered. For details, refer to the section: [ORM Chain Operation - Field Filtering](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) + 1. [ORM - Model 🔥](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作.md) + 2. [ORM Model - Insert/Save](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-写入保存.md) + 3. [ORM Model - Update/Delete](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-更新删除.md) + 4. [ORM Model - Query](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-数据查询/ORM链式操作-数据查询.md) + 4. In the new version, the database `ORM` chain operation has enabled field filtering by default. Parameters that cannot be intelligently matched with table fields will be automatically filtered. For details, refer to the section: [ORM Model - Fields Filtering](../../docs/核心组件/数据库ORM/ORM链式操作/ORM链式操作-字段过滤.md) 5. Improved the conversion of `pgsql` database type `int8` to `Golang` type, from `int` type adjusted to `int64`. 6. Extensive refactoring and improvement work have been done, too detailed to describe each. The key result is richer component functionality, more rigorous code, simpler design, and easier use. 2. `HTTP` - 1. `HTTP Client` adds middleware interceptor functionality: [HTTPClient - Interceptor/Middleware](../../docs/WEB服务开发/HTTPClient/HTTPClient-拦截器中间件.md) - 2. `HTTP Client&Server` adds tracing support: [Tracing - HTTP Examples](../../docs/服务可观测性/服务链路跟踪/链路跟踪-HTTP示例/链路跟踪-HTTP示例.md) + 1. `HTTP Client` adds middleware interceptor functionality: [HTTPClient - Middleware](../../docs/WEB服务开发/HTTPClient/HTTPClient-拦截器中间件.md) + 2. `HTTP Client&Server` adds tracing support: [Tracing - HTTP Example](../../docs/服务可观测性/服务链路跟踪/链路跟踪-HTTP示例/链路跟踪-HTTP示例.md) 3. The client request method in the `ghttp` package is marked deprecated, and will be unified to use the `HTTP Client` object in the future. - 4. Improved the data validation of `Request.Parse` method, directly validating submitted parameters instead of the `struct` object converted from data: [Request Input - Request Validation](../../docs/WEB服务开发/请求输入/请求输入-请求校验.md) + 4. Improved the data validation of `Request.Parse` method, directly validating submitted parameters instead of the `struct` object converted from data: [Request - Validation](../../docs/WEB服务开发/请求输入/请求输入-请求校验.md) 5. Added `WrapF/WrapH` methods to convert standard library `http.HandlerFunc/http.Handler` to service method types supported by `ghttp.Server`. 6. Numerous other improvements, with many details. The key outcome is richer component functionality, more rigorous code, and easier use. 3. `gvalid` - 1. The `Check` method name is changed to `CheckValue`, for details, refer to the section: [Data Validation - Single Data Validation](../../docs/核心组件/数据校验/数据校验-参数类型/数据校验-单数据校验.md) - 2. Added `CheckStructWithData` method to validate the `struct` object of specified parameters: [Data Validation - Struct Validation](../../docs/核心组件/数据校验/数据校验-参数类型/数据校验-Struct校验/Struct校验-基本使用.md) - 3. Added `Validator` validation object for convenient chain operation, allowing further expansion later: [Data Validation - Validation Objects](../../docs/核心组件/数据校验/数据校验-校验对象.md) - 4. Custom rule method definitions now include `Context` variables and added `RuleFunc` and `RuleFuncMap` local validation rule registration methods: [Data Validation - Custom Rules](../../docs/核心组件/数据校验/数据校验-自定义规则/数据校验-自定义规则.md) + 1. The `Check` method name is changed to `CheckValue`, for details, refer to the section: [Data Type - Value](../../docs/核心组件/数据校验/数据校验-参数类型/数据校验-单数据校验.md) + 2. Added `CheckStructWithData` method to validate the `struct` object of specified parameters: [Struct Validation - Example](../../docs/核心组件/数据校验/数据校验-参数类型/数据校验-Struct校验/Struct校验-基本使用.md) + 3. Added `Validator` validation object for convenient chain operation, allowing further expansion later: [Data Validation - Object](../../docs/核心组件/数据校验/数据校验-校验对象.md) + 4. Custom rule method definitions now include `Context` variables and added `RuleFunc` and `RuleFuncMap` local validation rule registration methods: [Data Validation - Custom](../../docs/核心组件/数据校验/数据校验-自定义规则/数据校验-自定义规则.md) 5. Validation methods have added `Context` parameter support, and improved to support powerful `I18N` international error information management capabilities: - 1. [I18N Internationalization](../../docs/核心组件/I18N国际化/I18N国际化.md) - 2. [Data Validation - Custom Errors](../../docs/核心组件/数据校验/数据校验-自定义错误.md) + 1. [I18N](../../docs/核心组件/I18N国际化/I18N国际化.md) + 2. [Data Validation - Error Msg](../../docs/核心组件/数据校验/数据校验-自定义错误.md) 6. `Error` object is modified to interface implementation, note that previous usage with `*Error` pointer will result in errors. 7. Some other detail improvements. 4. `gcache` - 1. Added `Ctx` chain operation method for context parameter input, for details, refer to the section: [Cache Management](../../docs/核心组件/缓存管理/缓存管理.md) - 2. The `Adapter` interface adds `Context` parameter input, facilitating context parameter passing, and improved adapters in built-in implementation supporting context parameter passing: [Cache Management - Interface Design](../../docs/核心组件/缓存管理/缓存管理-接口设计.md) + 1. Added `Ctx` chain operation method for context parameter input, for details, refer to the section: [Caching](../../docs/核心组件/缓存管理/缓存管理.md) + 2. The `Adapter` interface adds `Context` parameter input, facilitating context parameter passing, and improved adapters in built-in implementation supporting context parameter passing: [Caching - Interface](../../docs/核心组件/缓存管理/缓存管理-接口设计.md) 5. `gredis` 1. Added support for tracing, for details, refer to the section: Redis-Context 6. `gjson` @@ -81,23 +81,23 @@ This documentation has been extensively updated, with the total development docu 7. `gcmd` 1. Added `GetOptWithEnv` method and marked `GetWithEnv` method as deprecated. 8. `glog` - 1. Added tracing support based on the `OpenTelemetry` standard: [Log Component - Context](../../docs/核心组件/日志组件/日志组件-Context.md) + 1. Added tracing support based on the `OpenTelemetry` standard: [Logging - Context](../../docs/核心组件/日志组件/日志组件-Context.md) 9. `gproc` - 1. Added unified signal registration listening callback feature: [Process Management - Signal Listening](../../docs/组件列表/系统相关/进程管理-gproc/进程管理-信号监听.md) + 1. Added unified signal registration listening callback feature: [Process - Signal](../../docs/组件列表/系统相关/进程管理-gproc/进程管理-信号监听.md) 10. `gres` - 1. Best practices for resource management can be found here: [Resource Management - Best Practices](../../docs/核心组件/资源管理/资源管理-最佳实践.md) + 1. Best practices for resource management can be found here: [Resource - Best Practices](../../docs/核心组件/资源管理/资源管理-最佳实践.md) 11. `gtimer` - 1. Timer component `gtimer` is fully restructured, removing the `TimingWheel` implementation, and adopting a more robust `PriorityQueue` improved implementation. Details can be found here: [Timer - gtimer](../../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) + 1. Timer component `gtimer` is fully restructured, removing the `TimingWheel` implementation, and adopting a more robust `PriorityQueue` improved implementation. Details can be found here: [Timer](../../docs/组件列表/系统相关/定时器-gtimer/定时器-gtimer.md) 12. `gview` 1. All template parsing methods added a `Context` parameter input: [Template Engine](../../docs/核心组件/模板引擎/模板引擎.md) 13. `gconv` - 1. Improved `Scan` method by adding automatic conversion support for `Map/Maps` parameter types: [Type Conversion - Scan Conversion](../../docs/核心组件/类型转换/类型转换-Scan转换.md) + 1. Improved `Scan` method by adding automatic conversion support for `Map/Maps` parameter types: [Type Conversion - Scan](../../docs/核心组件/类型转换/类型转换-Scan转换.md) 14. `gi18n` - 1. The `I18N` internationalization component adds support for `Context`, for details, refer to the section: [I18N Internationalization](../../docs/核心组件/I18N国际化/I18N国际化.md) - 2. Note that all methods now have a `ctx` parameter input, and some methods have removed the `language` parameter, instead controlled by `ctx` to input `language`, enhancing extensibility: [I18N Internationalization - Usage Guide](../../docs/核心组件/I18N国际化/I18N国际化-使用介绍.md) + 1. The `I18N` internationalization component adds support for `Context`, for details, refer to the section: [I18N](../../docs/核心组件/I18N国际化/I18N国际化.md) + 2. Note that all methods now have a `ctx` parameter input, and some methods have removed the `language` parameter, instead controlled by `ctx` to input `language`, enhancing extensibility: [I18N - Example](../../docs/核心组件/I18N国际化/I18N国际化-使用介绍.md) 3. Removed `TranslateFormatLang` and `Tfl` methods. 15. `gmeta` - 1. Newly added `gmeta` metadata package, for details, refer to the section: [Metadata - gmeta](../../docs/组件列表/实用工具/元数据-gmeta.md) + 1. Newly added `gmeta` metadata package, for details, refer to the section: [Metadata](../../docs/组件列表/实用工具/元数据-gmeta.md) 16. Other detailed improvements in various components, not necessary to specifically detail in the release documentation. ## Development Toolchain