1
0
mirror of https://github.com/kataras/iris.git synced 2025-12-20 03:17:04 +00:00

performance close to handlers if no bindings but even if bindings except service (new feature is that we can bind functions as well) is x1.1 faster than the previous mvc implementation - make BaseController (so and C) optionally but not break the existing APIs that using iris.C or mvc.C

Former-commit-id: a26a8f836894c061e0f435df8ac1c2c534f0ee48
This commit is contained in:
Gerasimos (Makis) Maropoulos
2017-12-13 06:17:28 +02:00
parent 257f1318c9
commit 8dcbdc0741
11 changed files with 238 additions and 74 deletions

View File

@@ -1,9 +1,6 @@
package mvc2
import (
"reflect"
"github.com/kataras/golog"
"github.com/kataras/iris/context"
"github.com/kataras/iris/sessions"
)
@@ -25,11 +22,11 @@ type SessionController struct {
// It makes sure that its "Manager" field is filled
// even if the caller didn't provide any sessions manager via the `app.Controller` function.
func (s *SessionController) OnActivate(ca *ControllerActivator) {
if !ca.BindTypeExists(reflect.TypeOf(defaultManager)) {
ca.Bind(defaultManager)
golog.Warnf(`MVC SessionController: couldn't find any "*sessions.Sessions" bindable value to fill the "Manager" field,
therefore this controller is using the default sessions manager instead.
Please refer to the documentation to learn how you can provide the session manager`)
if didntBindManually := ca.BindIfNotExists(defaultManager); didntBindManually {
ca.Router.GetReporter().Add(
`MVC SessionController: couldn't find any "*sessions.Sessions" bindable value to fill the "Manager" field,
therefore this controller is using the default sessions manager instead.
Please refer to the documentation to learn how you can provide the session manager`)
}
}