Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
85d8ec5c
Commit
85d8ec5c
authored
Sep 07, 2015
by
astaxie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
optimize the beego structure
parent
eb3479b7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
140 additions
and
124 deletions
+140
-124
beego.go
beego.go
+40
-72
error.go
error.go
+0
-41
hooks.go
hooks.go
+100
-0
mime.go
mime.go
+0
-11
No files found.
beego.go
View file @
85d8ec5c
...
...
@@ -19,8 +19,6 @@ import (
"path/filepath"
"strconv"
"strings"
"github.com/astaxie/beego/session"
)
// beego web framework version.
...
...
@@ -33,33 +31,6 @@ var (
hooks
=
make
([]
hookfunc
,
0
)
//hook function slice to store the hookfunc
)
// SetViewsPath sets view directory path in beego application.
func
SetViewsPath
(
path
string
)
*
App
{
ViewsPath
=
path
return
BeeApp
}
// SetStaticPath sets static directory path and proper url pattern in beego application.
// if beego.SetStaticPath("static","public"), visit /static/* to load static file in folder "public".
func
SetStaticPath
(
url
string
,
path
string
)
*
App
{
if
!
strings
.
HasPrefix
(
url
,
"/"
)
{
url
=
"/"
+
url
}
url
=
strings
.
TrimRight
(
url
,
"/"
)
StaticDir
[
url
]
=
path
return
BeeApp
}
// DelStaticPath removes the static folder setting in this url pattern in beego application.
func
DelStaticPath
(
url
string
)
*
App
{
if
!
strings
.
HasPrefix
(
url
,
"/"
)
{
url
=
"/"
+
url
}
url
=
strings
.
TrimRight
(
url
,
"/"
)
delete
(
StaticDir
,
url
)
return
BeeApp
}
// The hookfunc will run in beego.Run()
// such as sessionInit, middlerware start, buildtemplate, admin start
func
AddAPPStartHook
(
hf
hookfunc
)
{
...
...
@@ -90,6 +61,20 @@ func Run(params ...string) {
BeeApp
.
Run
()
}
// this function is for test package init
func
TestBeegoInit
(
apppath
string
)
{
AppPath
=
apppath
os
.
Setenv
(
"BEEGO_RUNMODE"
,
"test"
)
AppConfigPath
=
filepath
.
Join
(
AppPath
,
"conf"
,
"app.conf"
)
err
:=
ParseConfig
()
if
err
!=
nil
&&
!
os
.
IsNotExist
(
err
)
{
// for init if doesn't have app.conf will not panic
Info
(
err
)
}
os
.
Chdir
(
AppPath
)
initBeforeHttpRun
()
}
func
initBeforeHttpRun
()
{
// if AppConfigPath not In the conf/app.conf reParse config
if
AppConfigPath
!=
filepath
.
Join
(
AppPath
,
"conf"
,
"app.conf"
)
{
...
...
@@ -101,7 +86,11 @@ func initBeforeHttpRun() {
}
//init mime
AddAPPStartHook
(
initMime
)
AddAPPStartHook
(
registerMime
)
AddAPPStartHook
(
registerDefaultErrorHandler
)
AddAPPStartHook
(
registerSession
)
AddAPPStartHook
(
registerDocs
)
AddAPPStartHook
(
registerTemplate
)
// do hooks function
for
_
,
hk
:=
range
hooks
{
...
...
@@ -110,52 +99,31 @@ func initBeforeHttpRun() {
panic
(
err
)
}
}
}
if
SessionOn
{
var
err
error
sessionConfig
:=
AppConfig
.
String
(
"sessionConfig"
)
if
sessionConfig
==
""
{
sessionConfig
=
`{"cookieName":"`
+
SessionName
+
`",`
+
`"gclifetime":`
+
strconv
.
FormatInt
(
SessionGCMaxLifetime
,
10
)
+
`,`
+
`"providerConfig":"`
+
filepath
.
ToSlash
(
SessionSavePath
)
+
`",`
+
`"secure":`
+
strconv
.
FormatBool
(
EnableHttpTLS
)
+
`,`
+
`"enableSetCookie":`
+
strconv
.
FormatBool
(
SessionAutoSetCookie
)
+
`,`
+
`"domain":"`
+
SessionDomain
+
`",`
+
`"cookieLifeTime":`
+
strconv
.
Itoa
(
SessionCookieLifeTime
)
+
`}`
}
GlobalSessions
,
err
=
session
.
NewManager
(
SessionProvider
,
sessionConfig
)
if
err
!=
nil
{
panic
(
err
)
}
go
GlobalSessions
.
GC
()
}
if
AutoRender
{
err
:=
BuildTemplate
(
ViewsPath
)
if
err
!=
nil
&&
RunMode
==
"dev"
{
Warn
(
err
)
}
}
registerDefaultErrorHandler
()
// SetViewsPath sets view directory path in beego application.
func
SetViewsPath
(
path
string
)
*
App
{
ViewsPath
=
path
return
BeeApp
}
if
EnableDocs
{
Get
(
"/docs"
,
serverDocs
)
Get
(
"/docs/*"
,
serverDocs
)
// SetStaticPath sets static directory path and proper url pattern in beego application.
// if beego.SetStaticPath("static","public"), visit /static/* to load static file in folder "public".
func
SetStaticPath
(
url
string
,
path
string
)
*
App
{
if
!
strings
.
HasPrefix
(
url
,
"/"
)
{
url
=
"/"
+
url
}
url
=
strings
.
TrimRight
(
url
,
"/"
)
StaticDir
[
url
]
=
path
return
BeeApp
}
// this function is for test package init
func
TestBeegoInit
(
apppath
string
)
{
AppPath
=
apppath
os
.
Setenv
(
"BEEGO_RUNMODE"
,
"test"
)
AppConfigPath
=
filepath
.
Join
(
AppPath
,
"conf"
,
"app.conf"
)
err
:=
ParseConfig
()
if
err
!=
nil
&&
!
os
.
IsNotExist
(
err
)
{
// for init if doesn't have app.conf will not panic
Info
(
err
)
// DelStaticPath removes the static folder setting in this url pattern in beego application.
func
DelStaticPath
(
url
string
)
*
App
{
if
!
strings
.
HasPrefix
(
url
,
"/"
)
{
url
=
"/"
+
url
}
os
.
Chdir
(
AppPath
)
initBeforeHttpRun
()
url
=
strings
.
TrimRight
(
url
,
"/"
)
delete
(
StaticDir
,
url
)
return
BeeApp
}
error.go
View file @
85d8ec5c
...
...
@@ -358,47 +358,6 @@ func gatewayTimeout(rw http.ResponseWriter, r *http.Request) {
t
.
Execute
(
rw
,
data
)
}
// register default error http handlers, 404,401,403,500 and 503.
func
registerDefaultErrorHandler
()
{
if
_
,
ok
:=
ErrorMaps
[
"401"
];
!
ok
{
Errorhandler
(
"401"
,
unauthorized
)
}
if
_
,
ok
:=
ErrorMaps
[
"402"
];
!
ok
{
Errorhandler
(
"402"
,
paymentRequired
)
}
if
_
,
ok
:=
ErrorMaps
[
"403"
];
!
ok
{
Errorhandler
(
"403"
,
forbidden
)
}
if
_
,
ok
:=
ErrorMaps
[
"404"
];
!
ok
{
Errorhandler
(
"404"
,
notFound
)
}
if
_
,
ok
:=
ErrorMaps
[
"405"
];
!
ok
{
Errorhandler
(
"405"
,
methodNotAllowed
)
}
if
_
,
ok
:=
ErrorMaps
[
"500"
];
!
ok
{
Errorhandler
(
"500"
,
internalServerError
)
}
if
_
,
ok
:=
ErrorMaps
[
"501"
];
!
ok
{
Errorhandler
(
"501"
,
notImplemented
)
}
if
_
,
ok
:=
ErrorMaps
[
"502"
];
!
ok
{
Errorhandler
(
"502"
,
badGateway
)
}
if
_
,
ok
:=
ErrorMaps
[
"503"
];
!
ok
{
Errorhandler
(
"503"
,
serviceUnavailable
)
}
if
_
,
ok
:=
ErrorMaps
[
"504"
];
!
ok
{
Errorhandler
(
"504"
,
gatewayTimeout
)
}
}
// ErrorHandler registers http.HandlerFunc to each http err code string.
// usage:
// beego.ErrorHandler("404",NotFound)
...
...
hooks.go
0 → 100644
View file @
85d8ec5c
package
beego
import
(
"mime"
"path/filepath"
"strconv"
"github.com/astaxie/beego/session"
)
//
func
registerMime
()
error
{
for
k
,
v
:=
range
mimemaps
{
mime
.
AddExtensionType
(
k
,
v
)
}
return
nil
}
// register default error http handlers, 404,401,403,500 and 503.
func
registerDefaultErrorHandler
()
error
{
if
_
,
ok
:=
ErrorMaps
[
"401"
];
!
ok
{
Errorhandler
(
"401"
,
unauthorized
)
}
if
_
,
ok
:=
ErrorMaps
[
"402"
];
!
ok
{
Errorhandler
(
"402"
,
paymentRequired
)
}
if
_
,
ok
:=
ErrorMaps
[
"403"
];
!
ok
{
Errorhandler
(
"403"
,
forbidden
)
}
if
_
,
ok
:=
ErrorMaps
[
"404"
];
!
ok
{
Errorhandler
(
"404"
,
notFound
)
}
if
_
,
ok
:=
ErrorMaps
[
"405"
];
!
ok
{
Errorhandler
(
"405"
,
methodNotAllowed
)
}
if
_
,
ok
:=
ErrorMaps
[
"500"
];
!
ok
{
Errorhandler
(
"500"
,
internalServerError
)
}
if
_
,
ok
:=
ErrorMaps
[
"501"
];
!
ok
{
Errorhandler
(
"501"
,
notImplemented
)
}
if
_
,
ok
:=
ErrorMaps
[
"502"
];
!
ok
{
Errorhandler
(
"502"
,
badGateway
)
}
if
_
,
ok
:=
ErrorMaps
[
"503"
];
!
ok
{
Errorhandler
(
"503"
,
serviceUnavailable
)
}
if
_
,
ok
:=
ErrorMaps
[
"504"
];
!
ok
{
Errorhandler
(
"504"
,
gatewayTimeout
)
}
return
nil
}
func
registerSession
()
error
{
if
SessionOn
{
var
err
error
sessionConfig
:=
AppConfig
.
String
(
"sessionConfig"
)
if
sessionConfig
==
""
{
sessionConfig
=
`{"cookieName":"`
+
SessionName
+
`",`
+
`"gclifetime":`
+
strconv
.
FormatInt
(
SessionGCMaxLifetime
,
10
)
+
`,`
+
`"providerConfig":"`
+
filepath
.
ToSlash
(
SessionSavePath
)
+
`",`
+
`"secure":`
+
strconv
.
FormatBool
(
EnableHttpTLS
)
+
`,`
+
`"enableSetCookie":`
+
strconv
.
FormatBool
(
SessionAutoSetCookie
)
+
`,`
+
`"domain":"`
+
SessionDomain
+
`",`
+
`"cookieLifeTime":`
+
strconv
.
Itoa
(
SessionCookieLifeTime
)
+
`}`
}
GlobalSessions
,
err
=
session
.
NewManager
(
SessionProvider
,
sessionConfig
)
if
err
!=
nil
{
return
err
}
go
GlobalSessions
.
GC
()
}
return
nil
}
func
registerTemplate
()
error
{
if
AutoRender
{
err
:=
BuildTemplate
(
ViewsPath
)
if
err
!=
nil
&&
RunMode
==
"dev"
{
Warn
(
err
)
}
}
return
nil
}
func
registerDocs
()
error
{
if
EnableDocs
{
Get
(
"/docs"
,
serverDocs
)
Get
(
"/docs/*"
,
serverDocs
)
}
return
nil
}
mime.go
View file @
85d8ec5c
...
...
@@ -14,10 +14,6 @@
package
beego
import
(
"mime"
)
var
mimemaps
map
[
string
]
string
=
map
[
string
]
string
{
".3dm"
:
"x-world/x-3dmf"
,
".3dmf"
:
"x-world/x-3dmf"
,
...
...
@@ -558,10 +554,3 @@ var mimemaps map[string]string = map[string]string{
".oex"
:
"application/x-opera-extension"
,
".mustache"
:
"text/html"
,
}
func
initMime
()
error
{
for
k
,
v
:=
range
mimemaps
{
mime
.
AddExtensionType
(
k
,
v
)
}
return
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment