majkl578 / nette-injects-extension
Nette Framework DI extension for injecting services into other services' properties.
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 2
Open Issues: 5
Type:nette-addon
Requires
- php: >=5.3.1
- nette/nette: ~2.1.0-RC2@rc
This package is auto-updated.
Last update: 2020-01-30 10:41:34 UTC
README
Nette Framework DI extension for injecting services into other services' properties.
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.).
Requirements
- PHP 5.3.1 or newer
- Nette 2.1 or newer
Installation
-
Add "
majkl578/nette-injects-extension
" to your dependencies in composer.json. Don't forget to runcomposer update
. -
Register this DI extension as last one in your configuration file in extensions section
injects: Majkl578\NetteAddons\Injects\DI\Extension\InjectsExtension
-
Delete cache.
You're done. ;)
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.
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).