Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/male110/gomvc

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/male110/gomvc

  • v0.0.0-20160507125342-8db8ea6f826b
  • Source
  • Go
  • Socket score

Version published
Created
Source


最后更新日期:2016-05-07

官网
下载GoMvc

有任何问题,可加QQ群:184572648,我基本上每天都在线的

原域名因忘记续费被别人抢注了,新域名为66a.cm

更新日志
编译
配置文件
路由注册
对其它包的依赖

更新日志

   
   2016-05-07
1,对原来的this.QueryString,this.Form获取表单参数的方做了一些改进
this.QueryString.Int("id"),this.this.QueryString.String("UserName")来获取数据,省去了类型转换,使代码更简练。

2,增加了一些属性,和函数。 this.IsAjax 判断当前请求是否Ajax this.IsPost 当前请求类型是否Post this.IsInWeiXin() 是否在微信浏览器下 this.IsCrawler() 当前请求是否来自搜索引擎的抓取

3,RouteTable.AddRote(&RouteItem{ Name: "article_details", Url: "details/{id}", Defaults: map[string]interface{}{"controller": "home", "action": "Details", "id": 0}, Constraints: map[string]string{"id": ^(\d+)$}}) 原来对id参数的获取是通过this.RouteData["id"]获取,现在可以直接通过this.QueryString.Int("id")来获取

2014-07-25 修复RenderAction模板函数Cookies传递的BUG <b>2014-06-13</b> 修改日志记录System/Log/Logger.go,AddError自动记录堆栈信息,增加AddErrMsg函数,自动记录堆栈信息,Add不记堆栈信息。
2014-06-04	    Controller增加ClearSession函数,RenderView增加错误日志
2014-05-23	    修改Session相关处理部分,在配置文件中,0配成零或空,表示程序不使用Session,
	    比如做WEBAPI时,可以配置成0,程序不使用Session可以降低资源占用,提高性能。
2014-05-22    修改Http请求处理过程,支持这样的Action
        func (this *Controller) IsExist() string {
        }
        action可以直接返回一个string类型,如果是其它的非ViewResult类型,会转换成string并输出。
2014-05-20    修改Controller的IsPost属性,修改Binder的错误。
2014-05-12    Controller加入Redirect函数,修改RederAction,修改RederAction。。
2014-05-08   加入模板函数RenderView,更新文档;将System\TemplateFunc包跟System\ViewEngine合并成一个包。

2014-05-07   修改RanderAction模板函数的一处错误。

2014-05-05   修改RanderAction模板函数的Bug,所有错误日志记录堆栈信息,以便调试,处理错误。

            增加编译的批处理文件Windows下运行build.bat,Linux下运行build.sh

2014-01-24   程序意外退出时,记录错误日志。 2013-10-14   增加域的功能。 2013-10-12   修复路由和FieSession的Bug。


编译

GoMVC是一个简单,便捷的MVC框架。程序注释全部使用中文,很适合国人使用。文档也很详细。 编译时,需要把GoMvc目录设置为GOPATH.


配置文件

网站的配置文件为web.config,格式为XML,配置项的内容如下:

ShowErrors:是否显示错误信息。true,显示;false,不显示。建义在测试时可以设置为true,发布到正式环境后设置为false。

CookieDomain:Cookies的Domain信息,可用来共享cookie。如domain.com,和sub.domain.com,可以通过把CookieDomain统一设置为domain.com来共享cookies信息

Theme:网站当前使用的主题,在Views目录下,可以有多套网站模板。

LogPath:日志文件的存放位置

LogFileMaxSize:单个日志文件的大小,超过指定大小后将创建一个新的日志文件。

DriverName:数据库的驱动名称。

DataSourceName:数据库的连接字符串。

StaticDir:静态目录,该目录下通常是CSS,JS,图片等静态资源。

StaticFile:静态文件,用来设置单个的静态文件,主要是为了提高灵活性,满足特殊的需求.

SessionType:Session的存放类型,1,文件,2内存,3Mysql数据库,修改需重启才能生效。当配置为3时,需要在数据库中创建一个表,来存放session,创建表的SQL如下:

    CREATE TABLE `session` (
    `session_id` CHAR(32) NULL,
    `session_data` BLOB NULL,
    `lastupdatetime` DATETIME NULL,
    PRIMARY KEY (`session_id`)
    )
    COLLATE='utf8_general_ci';
  

SessionLocation:当SessionType为1时,该项为Session文件的存放路径;SessionType为3时,该项为数据库连接字符串。

SessionTimeOut:Session超时时间,单位分钟

MemFreeInterval:程序中有定时器,定时对Session进行检查,删除超时的Session,该配置项用来设置多久进行一次检查,单位秒,默认值60。

ListenPort:网站的端口号,该配置改后必须重启程序才能生效。

 

路由注册

用RouteTable.AddRote来注册路由。其格式如下:

  //注册标准路由
  RouteTable.AddRote(&RouteItem{
  Name:     "default",
  Url:      "{controller}/{action}",
  Defaults: map[string]interface{}{"controller": "home", "action": "index"}})

Name:路由名称
Url:路由的格式
Defaults: 路由参数的默认值

除了默认值,还可以指定约束,来限制参数的类型,如下面的例子,指定id参数,只能是数字型。
  RouteTable.AddRote(&RouteItem{
  Name:        "default",
  Url:         "{controller}/{action}/{id}",
  Defaults:    map[string]interface{}{"controller": "home", "action": "index", "id": 123},
  Constraints: map[string]string{"id": `^(\d+)$`}})
在上面的例子中我们指定了id参数只能是数字,并设置了默认值123。要在Controller中获取该参数值,可以用this.RouteData["id"]。

因为在Go没有办法反射出包中的所有struct,所以需要手动来注册Controller,格式如下:

  import (
  "System/Web"
  "fmt"
  )

type Home struct { Web.Controller }

//注册Controller func init() { Web.App.RegisterController(Home{}) }

对于Controller的命名没有严格的要求,可以用Home,也可以用HomeController

对其它包的依赖

GOMvc追求简单,实用,尽可能减少对其它包的依赖。在GoMvc中有两个地方用到了第三方包:

1,System/Session/MysqlSession.go 该文件实现了以mysql的方式来存储Session的功能,需要mysql的驱动。可以此下载https://github.com/go-sql-driver/mysql

2,System/fsnotify  这是一个监控文件修改的第三方包,已下载到System目录,用户不需再自己安装。该包位于 https://github.com/howeyc/fsnotify

下载GoMvc

有任何问题,可加QQ群:184572648,我基本上每天都在线的

FAQs

Package last updated on 07 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc