https://github.com/nklbdev/simplest-ioc-container-lua
Just simplest IoC container on Lua
https://github.com/nklbdev/simplest-ioc-container-lua
Last synced: about 1 year ago
JSON representation
Just simplest IoC container on Lua
- Host: GitHub
- URL: https://github.com/nklbdev/simplest-ioc-container-lua
- Owner: nklbdev
- Created: 2015-08-09T12:10:20.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-10-23T13:12:02.000Z (over 7 years ago)
- Last Synced: 2025-01-23T09:33:11.130Z (over 1 year ago)
- Language: Lua
- Size: 3.91 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SimplestIocContainerLua
Just simplest IoC container on Lua
usage:
```lua
local SimplestIocContainer = require("simplest_ioc_container")
local container = SimplestIocContainer.new()
container:bind("a", function(ctr)
return { b = ctr:resolve("b"), c = ctr:resolve("c"), d = "asdfsdf"}
end, true)
container:bind("b", function(ctr)
return "BBBBBB"
end, true)
container:bind("c", function(ctr)
return "CCCCCCCC"
end, true)
local a = container:resolve("a")
print(a.b.." "..a.c.." "..a.d)
```
will print:
BBBBBB CCCCCCCC asdfsdf
or in object-oriented manner:
```lua
local SimplestIocContainer = require("simplest_ioc_container")
local Thor = require("thor")
local Mjolnir = require("mjolnir")
local container = SimplestIocContainer.new()
container:bind("God", function(ctr)
return Thor.new(ctr:resolve("Hammer"))
end, true)
container:bind("Hammer", function(ctr)
return Mjolnir.new()
end, true)
local god = container:resolve("God")
print(god.weapon.name)
```
You can use any values as keys, for example, classes, as is implemented in other languages.