PHP 转 Go,用 Laravel、thinkphp 的用法造了一个 ThinkGo 框架,请大佬们来指点

2019-01-29 13:45:46 +08:00
 techone

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

请大佬们来指点指点,贡献贡献代码啊。。。

5789 次点击
所在节点    Go 编程语言
28 条回复
fullpowers
2019-01-29 13:51:39 +08:00
年轻人喜欢折腾啊
loading
2019-01-29 13:55:46 +08:00
thinkphp 没用过,目前在用 gin。
在补充轮子。
techone
2019-01-29 14:05:08 +08:00
快来一起造轮子
Immortal
2019-01-29 14:25:46 +08:00
大佬很强
但感觉这样又会失去 go 的味道 成了另一种 php?
2805408253
2019-01-29 14:31:14 +08:00
@loading 产线有 gin 高并发使用的吗
loading
2019-01-29 14:41:28 +08:00
@2805408253 目前我觉得我其实只用了路由……
nimrc
2019-01-29 14:46:54 +08:00
beego 已经实现了你的想法,且已经被喷成狗屎
xkeyideal
2019-01-29 14:49:28 +08:00
说句批评的话,先不看代码质量如何,go web 不需要 php 那种一把索的框架。
一直反对全家桶的方案
xkeyideal
2019-01-29 14:52:36 +08:00
看了一下,只看了路由匹配算法,楼主采用的是正则,这就没有了性能可言。
TIGERB
2019-01-29 14:57:50 +08:00
挺不错,但是 go 真的不适合 mvc
janxin
2019-01-29 14:59:12 +08:00
@loading 一般都是用路由跟中间件系统了,其他的也没什么用的
keysona
2019-01-29 15:09:12 +08:00
公司项目在用 gin,不过新特性加得比较慢,而且感觉维护者也不怎么上心,相对隔壁 iris 而言。

最近在研究 iris 了。
janxin
2019-01-29 15:10:59 +08:00
@keysona iris 黑历史了解一下

新特性也没必要追的太勤吧...
keysona
2019-01-29 15:13:33 +08:00
@janxin

求科普黑历史。也是刚关注。
myyou
2019-01-29 15:21:27 +08:00
@keysona iris 依赖太多,各种不知名小库依赖一大堆。gin 并不是不上心,gin 发版频率低,但是经常有新代码提交
Hellert
2019-01-29 15:58:59 +08:00
在前后端分离的情况下,golang web 主要还是写 api server 的多,由于 net/http 实现了绝大部分功能(自带 web 服务器,这个 php 不能比 😁),所以有 gin, echo 这种路由+中间件的库足够用了,再外加一些第三方的 session, validation 包,就可以处理绝大多数场景,用大而全的只会增加性能负担。
loading
2019-01-29 16:25:51 +08:00
@janxin gin 的中间件依赖很多,有点不想用。
reus
2019-01-29 16:43:35 +08:00
老式 mvc 框架还不如直接 beego。
新式 api 服务器不需要这些多余的。
AngryPanda
2019-01-29 16:50:39 +08:00
所以 laravel 和 thinkphp 在你看来,是一样的?
techone
2019-01-29 18:06:08 +08:00
@AngryPanda 来来来,讨论一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531553

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX