用go开发php框架,GitHub - Fengxiaomi/thinkgo: ThinkGo 是一款 Go 语言编写的 web 快速开发框架。它基于开源框架 Gin 进行二次开发,旨在实现一种类 T...

#ThinkGo Web Framework 68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f68656e72796c656532636e2f7468696e6b676f3f7374617475732e737667

favicon.png

ThinkGo 是一款 Go 语言编写的 web 快速开发框架。它基于开源框架 Gin 进行二次开发,旨在实现一种类 ThinkPHP 的高可用、高效率的 web 框架。在此感谢 Gin 和 httprouter。它最显著的特点是模块、控制器、操作三段式的标准 MVC 架构,且模块与插件的目录结构完全一致,令开发变得非常简单灵活。

官方QQ群:Go-Web 编程 42730308 feb5ff6651dfb0b85ca76e2d7fe6b30d.png

server.jpg

admin.jpg

##目录结构

├─main.go 主文件

├─core 框架目录

├─application 应用模块目录

│ ├─example.go 模块定义文件

│ ├─example 模块目录

│ │ ├─conf 配置文件目录

│ │ ├─common 公共文件目录

│ │ ├─controller 控制器目录

│ │ ├─model 模型目录

│ │ └─view 视图文件目录

│ │ └─default 主题文件目录

│ │ ├─__public__ 资源文件目录

│ │ └─xxx 控制器模板目录

│ │

│ ├─example2.go 插件定义文件

│ ├─example2 插件目录

│ │ ├─conf 配置文件目录

│ │ ├─common 公共文件目录

│ │ ├─controller 控制器目录

│ │ ├─model 模型目录

│ │ └─view 视图文件目录

│ │ └─default 主题文件目录

│ │ ├─__public__ 资源文件目录

│ │ └─xxx 控制器模板目录

│ │

│ └─... 扩展的可装卸功能模块或插件

├─common 公共文件目录

│ ├─deploy 部署文件目录

│ └─utils 工具集

├─model 模型目录

├─conf 配置文件目录

└─uploads 上传根目录

安装

go get github.com/henrylee2cn/thinkgo

解压 application.zip 至项目根目录(示例)

##使用说明

main.go

package main

import (

_ "github.com/henrylee2cn/thinkgo/application"

"github.com/henrylee2cn/thinkgo/core"

)

func main() {

core.ThinkGoDefault().

// 以下为可选设置

TemplateDelims("{{{","}}}").

TemplateSuffex(".html").

TemplateFuncs(map[string]interface{}).

Use(middleware1,middleware2,middleware3,...).

// 启动服务

Run(":8080")

}

定义模块/插件

package application

import (

"github.com/henrylee2cn/thinkgo/application/admin/conf"

. "github.com/henrylee2cn/thinkgo/application/admin/controller"

. "github.com/henrylee2cn/thinkgo/core"

)

func init() {

ModulePrepare(&Module{

// 定义插件时改为: AddonPrepare(&Module{

Name: conf.NAME,

Class: conf.CLASS,

Description: conf.DESCRIPTION,

}).SetThemes(

// 自动设置传入的第1个主题为当前主题

&Theme{

Name: "default",

Description: "default",

Src: map[string]string{},

},

&Theme{

Name: "blue",

Description: "blue",

Src: map[string]string{

"img":"/public/banner.jpg",

},

},

).

// 指定当前主题

UseTheme("blue").

// 中间件

// Use(...).

// 注册路由,且可添加中间件

GET("/index?addon", &IndexController{}).

HEAD("/to", &IndexController{}).

DELETE("/del/:addon", someHandlerFunc, &IndexController{}).

POST("/add", &IndexController{}, someHandlerFunc).

PUT("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc).

PATCH("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc).

OPTIONS("/ReadMail", someHandlerFunc, &ReadController{}, someHandlerFunc)

}

定义控制器

package controller

import (

"github.com/henrylee2cn/thinkgo/application/admin/common"

)

type IndexController struct {

common.BaseController

}

func (this *IndexController) Index() {

// 当url类似 "/admin/index/index?addon=mail" 时,这样获取参数

id := this.Query("addon")

if id == "" {

// 当url类似 "/admin/index/index/mail" 时,这样获取参数

id = this.Param("addon")

}

// 传入模板变量

this.Data["name"] = "henrylee2cn"

// 渲染模板并写回响应流

this.HTML()

}

##开源协议

ThinkGo 项目采用商业应用友好的 MIT 协议发布。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值