Categorygithub.com/wenzhenxi/phalgo
modulepackage
0.0.0-20190625091144-a31aaa1f0918
Repository: https://github.com/wenzhenxi/phalgo.git
Documentation: pkg.go.dev

# README

PhalGo V 0.0.4

phalgo 已经更换为 https://github.com/sunmi-OS/gocore phalgo不在维护

前言

PhalGo是一个Go语言开发的一体化开发框架,主要用于API开发,因为使用ECHO框架作为http服务,MVC模式一样可以使用,牛顿曾经说过"如果我比别人看得远,那是因为我站在巨人的肩膀上",既然Golang有那么多优秀的组件为什么还要重复造轮子呢?所以就有了一个把一些优秀组件整合起来降低开发成本的想法,整合了比较好的组件比如echo,gorm,viper等等,开源出来希望可以帮助到大家,也希望和大家一起交流!

注意:框架前期还不是很完善,请不要直接使用到生产环境!

PhalGo的目的

PhalGo不是新技术,也不是新的模式,而是继续将前人,大神和顶级大师写的非常优秀的组件进行整合进行分享,并且进行封装来更易于开发人员来进行使用,最终达到建立规范降低开发成本的目的,这是PhalGo被创造出来核心的目的。

##PhalGo名字的由来

PhalGo是对PhalApi和PhalCon的致敬,吸取了一些好的思想,应为是使用golnag编写所以命名为PhalGo

安装

多谢各位同学的反馈PhalGo安装已经推荐使用glide进行安装

glide工具的安装也很简单可以参考:https://github.com/Masterminds/glide

我们只需要在我们的项目目录建立glide.yaml文件加以下内容然后执行glide install便会自动开始安装,package: 后面更项目名称

package: phalgo-sample     
import:
- package: github.com/wenzhenxi/phalgo

PhalGo的升级也很简单,只需要在项目目录执行:

glide up

因为有部分组件依赖golang.org国内网络可能会有问题,可以直接clone官方示例项目把项目phalgo-sample中的vendor复制到你的项目目录:

phalgo-sample:https://github.com/wenzhenxi/phalgo-sample

Holle,world!

创建文件 server.go

package main

import (
    "github.com/wenzhenxi/phalgo"
    "github.com/labstack/echo"
)

func main() {

    //初始化ECHO路由
    phalgo.NewEcho()
    // Routes路由
    phalgo.Echo.GET("/", func(c echo.Context) error {
        Response := phalgo.NewResponse(c)
        return Response.RetSuccess("hello,world!")
    })
	//开启服务
	phalgo.Start(":1333")
}

运行:

go run server.go

请求localhost:1333:

依赖

//配置文件读取
github.com/spf13/viper

//辅助使用,参数过滤,curl等(已经集成到框架)
github.com/astaxie/beego

//主要路由
github.com/labstack/echo

//主要数据操作
github.com/jinzhu/gorm

//log记录
github.com/Sirupsen/logrus

//进程级别缓存
github.com/coocood/freecache

//redis依赖
github.com/garyburd/redigo

//注意会使用到如下依赖(国内可能需要翻墙)
golang.org/x/net/context
golang.org/x/sys/unix
golang.org/x/crypto/md4

PhalGo-DOC

文档正在完善中,多谢大家的支持!

[1.1]PhalGo-介绍

[1.2]PhalGo-初识PhalGO

[1.3]PhalGo-ADM思想

[1.4]PhalGo-Viper获取配置

[2.1]PhalGo-Echo

[2.2]PhalGo-Request

[2.3]PhalGo-参数验证过滤

[2.4]PhalGo-Respones

[2.5]PhalGo-异常处理

[2.6]PhalGo-日志处理

[3.1]PhalGo-Model概述

[4.1]PhalGo-Redis使用

[4.2]PhalGo-Free缓存

[4.3]PhalGo-Tool工具

[4.4]PhalGo-Json

[4.5]PhalGo-curl

[4.7]PhalGo-pprof

[4.8]PhalGo-签名和加密.md

联系方式

个人主页:w-blog.cn

喵了个咪邮箱:[email protected]

官方QQ群:149043947

# Packages

No description provided by the author
Package httplib is used as http.Client Usage: import "github.com/astaxie/beego/httplib" b := httplib.Post("http://beego.me/") b.Param("username","astaxie") b.Param("password","123456") b.PostFile("uploadfile1", "httplib.pdf") b.PostFile("uploadfile2", "httplib.txt") str, err := b.String() if err != nil { t.Fatal(err) } fmt.Println(str) more docs http://beego.me/docs/module/httplib.md.
Package validation for validations import ( "github.com/astaxie/beego/validation" "log" ) type User struct { Name string Age int } func main() { u := User{"man", 40} valid := validation.Validation{} valid.Required(u.Name, "name") valid.MaxSize(u.Name, 15, "nameMax") valid.Range(u.Age, 0, 140, "age") if valid.HasErrors() { // validation does not pass // print invalid message for _, err := range valid.Errors { log.Println(err.Key, err.Message) } } // or use like this if v := valid.Max(u.Age, 140, "ageMax"); !v.Ok { log.Println(v.Error.Key, v.Error.Message) } } more info: http://beego.me/docs/mvc/controller/validation.md.

# Functions

自动添加末尾斜杠.
设置Body大小.
获取debug状态.
获取默认的Gorm实例.
通过名称获取Gorm实例.
获取项目路径.
Gob解密.
Gob加密.
开启gzip压缩.
从接口类型转换到int64返回int类型.
No description provided by the author
判断文件目录否存在.
Initialize the json configruation.
记录Debug信息.
记录Error信息.
打印请求信息.
记录Info信息.
创建文件.
初始化配置文件.
初始化Gorm.
初始化echo实例.
初始化Free进程缓存.
初始化Redis连接.
初始化request.
初始化Response.
开启PProf性能分析.
打印当前时间.
打印出接口的时间类型.
打印请求异常信息.
自动删除末尾斜杠.
是否开启debug.
设置Ret格式.
开启服务.
从接口类型转换到[]byte.
从接口类型转换到Float64.
从接口类型转换到Int.
从接口类型转换到Int64.
从接口类型转换到map[string]interface{}.
从接口类型转换到接口切片.
从接口类型转换到String.
URL解码.
URL编码.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

当前项目根目录.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author