DI containers are sorted alphabetically.
- Aura DI: source
- Auryn: source
- AWS/Guzzle: source
- Laravel 4: source
- League\Di: source
- Mouf: source
- Orno\Di: source
- PHP-DI: source
- Pimple: source
- PPI: source
- Symfony 2: source
- Zend Framework 2: source
Submit PR to expand.
Comparison:
Container | Read | Test | Not found behavior | ArrayAccess |
---|---|---|---|---|
Aura DI | get($key) |
has($key) |
Exception | No |
Auryn | make($key, [$params]) |
Exception | No | |
AWS/Guzzle | get($key, [$throwAway]) |
array access | Exception | Yes |
Laravel | make($key, [$params]) |
bound($key) |
Exception? | Yes |
League\Di | resolve($key) |
bound($key) |
Exception | No |
Mouf | get($key) |
has($key) |
Exception | No |
Orno\Di | resolve($key, [$args]) |
? | No | |
PHP-DI | get($key) |
has($key) |
Exception | No |
Pimple | array access | array access | Exception | Yes |
PPI | get($key, [$bool]) |
hasOption($key) |
Exception | Yes |
Symfony | get($id, [$invalidBehavior]) |
has($key) |
Null or Exception | No |
ZF2 | get($key, [$params]) |
Null | No |
Parameters surrounded by []
(like get($key, [$param])
) are optional parameters.
Summary
- Read method name:
get
: 7make
: 2resolve
: 2- array access: 1
- Read mandatory number of parameters is always 1
- Test existence:
- with: 9
- without: 4
- Test existence method name:
has
: 4bound
: 2hasOption
: 1- array access: 2
- Not found behavior:
- exception: 10
- null: 2
- ArrayAccess:
- no: 8
- yes: 4
@jeremeamia: thanks, merged (manually)
@dongilbert: thanks, edited
@moufmouf: thanks, merged
@Ocramius: What's the difference between them? I have nothing against it except counting the same thing twice, so is there (out of those 2) only one that we should consider maybe?