Skip to content

lehoon/ecgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介

ecgo 是一个易学、易用、易扩展的web开发框架。核心功能包括:

  • 自动规则路由,支持RESTful

  • request的二次封装

    • 可以直接使用格式化的Get,Post,Cookie,Session等变量来处理请求数据
    • 方便的上传文件操作
  • response二次封装

    • 添加SetCookie,SetHeader,ShowErr,Redirect等方法
    • 支持模板渲染Render,模板支持include子模板
  • 内置基于文件和memcache的session支持,同时支持自定义sessionHandler

  • 支持静态文件服务

  • 提供ini配置文件读取,benchmark,log等辅助方法

  • 支持mysql和memcache的dao封装,简化数据操作

  • 提供pv、流量的实时统计

  • 其它

    • 配置文件和预编译模板的实时重新加载
    • 提供validator,支持扩展规则
    • daemon (github.com/tim1020/godaemon)

版权说明

Copyright 2016 ecgo Author. All Rights Reserved. Licensed under LGPL ,see http://www.gnu.org/licenses/lgpl.html

如有任何疑问,请联系本人: [email protected]

使用说明

目录结构

  • 开发目录 ($GOPATH/src/yourapp)

    • controller/ #放置controller代码
    • service/ #放置model相关代码
    • conf/ #存放配置文件
    • logs/ #日志目录
    • public/ #静态文件目录
    • views/ #视图模板目录
    • yourapp.go #main入口文件

其中,安装时,conf,public,views三个目录会完整copy到安装目录

  • 安装目录(应用开发完成后,正式部署的目录结构)

    • conf/ #存放配置文件
    • logs/ #日志目录(要求可写)
    • public/ #静态文件目录
    • views/ #视图模板目录
    • yourapp #应用执行文件

使用ecgo辅助工具创建应用

(首先,你要安装好你的go开发环境,并设置好$GOPATH)

  • 获得ecgo

     go get github.com/tim1020/ecgo
     chmod +x $GOPATH/src/github.com/tim1020/ecgo/tools/ecgo
    
  • 创建应用

     cd $GOPATH/src/github.com/tim1020/ecgo/tools/
     ./ecgo new appname
    

(名为appname的应用将会被创建在$GOPATH/src/appname)

  • 编写你的应用

    • 根椐需要,修改conf.ini
    • 编写你的service和controller
  • 安装应用到指定目录

     cd $GOPATH/src/github.com/tim1020/ecgo/tools
     ./ecgo install appname dst
    

代码示例

package main
import "github.com/tim1020/ecgo"
type C struct {
	*ecgo.Request
}
func main() {
	log.Fatal(ecgo.Server(&C{},nil)) //第二参数可指定自定义sessionHandler
}
//controller
func (this *C) Action() {
	this.Render("a.tpl",data)
}

About

a go web framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages