大家好,我是码农先森。

安装

使用 composer 进行项目的创建。

composer create-project topthink/think thinkphp_demo

使用 go mod 初始化项目。

go mod init gin_demo

目录

thinkphp_demo 项目目录结构。

thinkphp_demo
├── LICENSE.txt
├── README.md
├── app
├── composer.json
├── composer.lock
├── config
├── extend
├── public
├── route
├── runtime
├── think
├── vendor
└── view

gin_demo 项目目录结构。

gin_demo/
├── app
│   ├── controller
│   └── model
├── config
├── go.mod
├── go.sum
├── main.go
├── route
│   └── app.go
└── view

路由

thinkphp_demo 项目的路由配置。

<?php
use think\facade\Route;

Route::get('/info/', 'index/info');
Route::post('/add/', 'index/add');
Route::post('/edit/', 'index/edit');
Route::post('/del/', 'index/del');

gin_demo 项目的路由配置。

package route

import (
	"gin_demo/app/controller"
	"github.com/gin-gonic/gin"
)

func InitRoute(r *gin.Engine) {
	r.GET("/info/", controller.InfoHandle())
	r.POST("/add/", controller.AddHandle())
	r.POST("/edit/", controller.EditHandle())
	r.POST("/del/", controller.DelHandle())
}

控制器

thinkphp_demo 项目的控制器。

<?php

namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function info() {
        // 这里从模型获取数据
        return;
    }

    public function add(){
        // 这里向模型添加数据
        return;
    }

    public function edit() {
        // 这里向模型编辑数据
        return;
    }

    public function del(){
        // 这里从模型删除数据
        return;
    }
}

gin_demo 项目的控制器。

package controller

import "github.com/gin-gonic/gin"

func InfoHandle() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 这里从模型获取数据
	}
}

func AddHandle() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 这里向模型添加数据
	}
}

func EditHandle() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 这里向模型编辑数据
	}
}

func DelHandle() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 这里从模型删除数据
	}
}

模型

thinkphp_demo 项目的模型。

<?php

namespace app\model;

use think\Model;

class User extends Model
{

}

gin_demo 项目的模型。

package model

type User struct {
	ID    int    `json:"id"`
	Name  string `json:"name"`
	Age   string `json:"age"`
	Phone string `json:"phone"`
}

// 设置表名
func (User) TableName() string {
	return "user"
}

总结

虽然语言和框架都不同,但是编程的思想都是一样,同样采用的是 MVC 的编程风格。从框架入手实现一个 CURD 案例,也可以很好的熟悉 Go 语言的编程风格及流程,为后续更深入的学习打下基础。

推荐

PHP 语言中的函数是如此强大、丰富、便利,PHP 程序员转到 Go 语言来,发现很多方法都需要自己封装,很不适应。因此给大家推荐一个很好网站,可以直接通过 PHP 语言中的函数找到对应在 Go 语言中的函数,这简直是转 Go 语言 PHP 程序员的福音,网站地址:https://www.php2golang.com/


欢迎关注、分享、点赞、收藏、在看,我是码农先森。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部