V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
techone
V2EX  ›  Go 编程语言

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

  •  
  •   techone · 2019-01-29 13:45:46 +08:00 · 5783 次点击
    这是一个创建于 2112 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

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

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

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

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

    求科普黑历史。也是刚关注。
    myyou
        15
    myyou  
       2019-01-29 15:21:27 +08:00
    @keysona iris 依赖太多,各种不知名小库依赖一大堆。gin 并不是不上心,gin 发版频率低,但是经常有新代码提交
    Hellert
        16
    Hellert  
       2019-01-29 15:58:59 +08:00
    在前后端分离的情况下,golang web 主要还是写 api server 的多,由于 net/http 实现了绝大部分功能(自带 web 服务器,这个 php 不能比 😁),所以有 gin, echo 这种路由+中间件的库足够用了,再外加一些第三方的 session, validation 包,就可以处理绝大多数场景,用大而全的只会增加性能负担。
    loading
        17
    loading  
       2019-01-29 16:25:51 +08:00 via Android
    @janxin gin 的中间件依赖很多,有点不想用。
    reus
        18
    reus  
       2019-01-29 16:43:35 +08:00
    老式 mvc 框架还不如直接 beego。
    新式 api 服务器不需要这些多余的。
    AngryPanda
        19
    AngryPanda  
       2019-01-29 16:50:39 +08:00
    所以 laravel 和 thinkphp 在你看来,是一样的?
    techone
        20
    techone  
    OP
       2019-01-29 18:06:08 +08:00
    @AngryPanda 来来来,讨论一下
    techone
        21
    techone  
    OP
       2019-01-29 18:09:16 +08:00
    @reus 框架的目的是快速开发,框架带的东西不一定都要求用啊,好比 beego,可以 beego+gorm,不一定非用 beego orm
    danc
        22
    danc  
       2019-01-29 20:57:34 +08:00
    mamahaha
        23
    mamahaha  
       2019-01-29 21:09:42 +08:00
    把.php 改成.go ,任务完成。
    techone
        24
    techone  
    OP
       2019-01-29 22:10:47 +08:00
    @danc 来来,一起贡献代码
    techone
        25
    techone  
    OP
       2019-01-30 10:05:08 +08:00
    @mamahaha 高手
    hp66722667
        26
    hp66722667  
       2019-02-01 14:50:35 +08:00
    php 是世界上最好的语言
    bzeron
        27
    bzeron  
       2019-02-02 10:28:38 +08:00   ❤️ 1
    大佬们,你们好,我之前也封装了一个 gin 的 https://github.com/bzeron/gin-web
    techone
        28
    techone  
    OP
       2019-02-12 17:56:48 +08:00
    @hp66722667 你说的很对
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2657 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:34 · PVG 14:34 · LAX 22:34 · JFK 01:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.