Golang Go语言中 PHP 转 Go,用 Laravel、thinkphp 的用法造了一个 ThinkGo 框架,请大佬们来指点
Golang Go语言中 PHP 转 Go,用 Laravel、thinkphp 的用法造了一个 ThinkGo 框架,请大佬们来指点
ThinkGo 是一个轻量级的 Go 语言 MVC 框架,目前支持路由、中间件、控制器、请求、响应、Session、视图、日志等 web 框架应该具备的基本功能,致力于让代码简洁、富于表达力,帮助开发者快速构建一个 Web 应用。
安装
go get -u github.com/thinkoner/thinkgo
用法
package main
import (
“github.com/thinkoner/thinkgo”
“fmt”
“github.com/thinkoner/thinkgo/router”
“github.com/thinkoner/thinkgo/context”
)
func main() {
app := thinkgo.BootStrap()
app.RegisterRoute(func(route *router.Route) {
route.Get("/", func(req *context.Request) *context.Response {
return thinkgo.Text("Hello ThinkGo !")
})
route.Get("/ping", func(req *context.Request) *context.Response {
return thinkgo.Json(map[string]string{
"message": "pong",
})
})
// Dependency injection
route.Get("/user/{name}", func(req *context.Request, name string) *context.Response {
return thinkgo.Text(fmt.Sprintf("Hello %s !", name))
})
})
// listen and serve on 0.0.0.0:9011
app.Run()
}
项目地址
GitHub: https://github.com/thinkoner/thinkgo
Gitee: https://gitee.com/thinkgo/thinkgo
请大佬们来指点指点,贡献贡献代码啊。。。
更多关于Golang Go语言中 PHP 转 Go,用 Laravel、thinkphp 的用法造了一个 ThinkGo 框架,请大佬们来指点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
年轻人喜欢折腾啊
更多关于Golang Go语言中 PHP 转 Go,用 Laravel、thinkphp 的用法造了一个 ThinkGo 框架,请大佬们来指点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
thinkphp 没用过,目前在用 gin。
在补充轮子。
快来一起造轮子
大佬很强
但感觉这样又会失去 go 的味道 成了另一种 php?
产线有 gin 高并发使用的吗
目前我觉得我其实只用了路由……
beego 已经实现了你的想法,且已经被喷成狗屎
说句批评的话,先不看代码质量如何,go web 不需要 php 那种一把索的框架。
一直反对全家桶的方案
看了一下,只看了路由匹配算法,楼主采用的是正则,这就没有了性能可言。
挺不错,但是 go 真的不适合 mvc
公司项目在用 gin,不过新特性加得比较慢,而且感觉维护者也不怎么上心,相对隔壁 iris 而言。
最近在研究 iris 了。
iris 黑历史了解一下
新特性也没必要追的太勤吧…
求科普黑历史。也是刚关注。
iris 依赖太多,各种不知名小库依赖一大堆。gin 并不是不上心,gin 发版频率低,但是经常有新代码提交
在前后端分离的情况下,golang web 主要还是写 api server 的多,由于 net/http 实现了绝大部分功能(自带 web 服务器,这个 php 不能比 😁),所以有 gin, echo 这种路由+中间件的库足够用了,再外加一些第三方的 session, validation 包,就可以处理绝大多数场景,用大而全的只会增加性能负担。
gin 的中间件依赖很多,有点不想用。
老式 mvc 框架还不如直接 beego。
新式 api 服务器不需要这些多余的。
所以 laravel 和 thinkphp 在你看来,是一样的?
来来来,讨论一下
框架的目的是快速开发,框架带的东西不一定都要求用啊,好比 beego,可以 beego+gorm,不一定非用 beego orm
正好,我今天也搞了一个,https://github.com/danclive/start,大佬多多交流啊,我以前也搞过 php
把.php 改成.go ,任务完成。
来来,一起贡献代码
高手
php 是世界上最好的语言
大佬们,你们好,我之前也封装了一个 gin 的 https://github.com/bzeron/gin-web
你说的很对
非常欣赏你在Go语言中尝试构建类似Laravel和ThinkPHP的框架(ThinkGo)的勇气和努力。以下是一些专业建议,希望能帮助你进一步完善这个框架:
-
路由机制:确保ThinkGo的路由系统灵活且高效,支持RESTful风格,并允许用户自定义路由规则。Laravel和ThinkPHP的路由功能强大且易于扩展,ThinkGo也应在这方面有所建树。
-
ORM模型:Laravel的Eloquent ORM非常受欢迎,ThinkPHP的数据库操作也很便捷。ThinkGo应提供一个功能强大的ORM,支持链式操作、关联查询和事务处理,同时保持代码的简洁性和可读性。
-
中间件与过滤器:实现类似Laravel的中间件机制,允许开发者在请求处理的不同阶段插入自定义逻辑。这有助于处理认证、日志记录、CORS等任务。
-
模板引擎:虽然Go语言更偏向使用原生模板或JSON渲染,但提供一个类似Blade(Laravel)或ThinkPHP模板引擎的功能,可能会吸引更多PHP开发者。
-
依赖注入:Laravel的依赖注入容器非常强大,ThinkGo可以借鉴这一设计,提供一个轻量级但功能全面的依赖注入框架,以促进代码的解耦和模块化。
-
文档与社区:良好的文档和活跃的社区是框架成功的关键。确保ThinkGo有详尽的文档,并鼓励用户参与讨论和贡献代码。
希望这些建议能对你的ThinkGo框架有所帮助,期待看到它的更多进步!