Service injects for Nette 2.1+
Nette Framework DI extension for injecting services into other services' properties., (*1)
Motivation
Writing constructor/setter injection is sometimes annoyingand while developing,
it may eat a lot of time. Also it is simpler to not bother with explicit injection
as long as it is not needed (e.g. in small application, not public project etc.)., (*2)
Requirements
- PHP 5.3.1 or newer
- Nette 2.3 or newer
Installation
- Add "
majkl578/nette-injects-extension
" to your dependencies in composer.json.
Don't forget to run composer update
.
-
Register this DI extension as last one in your configuration file in extensions section, (*3)
injects: Majkl578\NetteAddons\Injects\DI\Extension\InjectsExtension
-
Delete cache., (*4)
You're done. ;), (*5)
Usage
All types of instance properties are supported - public, protected as well as private.
You can also inject a set of classes of a type, e.g. all implementers of an interface.
Also works well with namespaced code and uses., (*6)
class Foo
{
/**
* @inject
* @var Foo
*/
public $foo;
/**
* @inject
* @var Bar
*/
protected $bar;
/**
* @inject
* @var Baz
*/
private $baz;
/**
* @inject
* @var IWatcher[]
*/
protected $watchers;
}
Issues
In case of any problems, just leave an issue here on GitHub (or, better, send a pull request)., (*7)