Commit Graph

9 Commits

Author SHA1 Message Date
Gerasimos (Makis) Maropoulos
b78698f6c0 fix all _examples to the newest mvc, add comments to those examples and add a package-level .Configure in order to make it easier for new users. Add a deprecated panic if app.Controller is used with a small tutorial and future resource link so they can re-write their mvc app's definitions
Former-commit-id: bf07696041be9e3d178ce3c42ccec2df4bfdb2af
2017-12-20 08:33:53 +02:00
Gerasimos (Makis) Maropoulos
fd0f3ed6cb fix check for singleton on fillStruct - no problem let's set all the static values on the first value although it may never be needed if request-scoped/stateless (No Singleton di.State)
Former-commit-id: a72bcd720d900fdc009cabb1e4a0b455026710fd
2017-12-20 00:09:17 +02:00
Gerasimos (Makis) Maropoulos
6285622cfa controller's struct: if unexported field(s) is set-ed manually (binder cannot do that) and no other dynamic dependency(depends on context) then tag the controller as singleton, use a single controller instance to serve all clients (the controller's methods are per-request of course but its(controller's) fields will be 'global'- users should be careful because parallel access of those fields are up to them by using mutex or atomic or values that are safe for concurrent access.
Former-commit-id: dfafcb3a37a9b33d713bf47f16dd60764b026a08
2017-12-20 00:01:50 +02:00
Gerasimos (Makis) Maropoulos
c15763c556 ok make it cleaner, it's working well and blazing fast but I have to do a lot cleaning and commenting and docs as well before push it to master --- hope at christmas day, also thinking some internal ideas - the whole code is not ready to be readen by a third person yet.
Former-commit-id: 0b3fb2841d5032ff47bdca42a6f4ccfeb789ce3c
2017-12-19 23:40:42 +02:00
Gerasimos (Makis) Maropoulos
20ba72aecf fix typo
Former-commit-id: b6f9de4cf8d62210ffefba5d33dc8372d236748d
2017-12-18 06:47:05 +02:00
Gerasimos (Makis) Maropoulos
d5a38a0cd6 more checks about creating new instance of controller on each request - this time if all bindings are static then set them to the initial-devpassed controller and if the total number of lengths are equal with these static dependencies then we ignore the injector and use the initial controller on each request - maximize the performance when simple controller is used - need more cleanup before new release but I hope until Christmas iris developers will be amazed
Former-commit-id: 32ed69368d1df2c25cdb712bb7f0cf47b2e36c05
2017-12-18 00:16:10 +02:00
Gerasimos (Makis) Maropoulos
40b40fa7d3 don't create new controller instance when all fields are set-ed by the end-dev - but we keep show those fields' values as Dependencies on the BeforeActivate in order to the future custom controllers authors to be able to check if something is added as dependecy or even manually set-ed before bind their own dependecies, otherwise they could override the manually set-ing
Former-commit-id: 72d3a0f1299781ee9a5e3e35e4a543354f8cd63d
2017-12-17 06:34:16 +02:00
Gerasimos (Makis) Maropoulos
68cc6641d4 Add session.Destroy (before I've added: Increment & Decrement entry helpers as well) | Improve the debug messages for the controllers
Former-commit-id: f5f17b05252a5032ace1e2d0fdd2304fc4004635
2017-12-16 23:09:00 +02:00
Gerasimos (Makis) Maropoulos
34664aa311 OK, my dream-idea is implemented. TODO: Some examples and doc.go is not updated yet, comments on the mvc/di subpackage, the tutorial/vuejs-todo-mvc is running but not finished yet (it's using browser's localstorage and it should be replaced by the http requests that are registered via iris mvc
Former-commit-id: 0ea7e01ce1d78bcb78b40f3b0f5c03ad7c9abaea
2017-12-16 06:38:28 +02:00