With the newest version of some fancy php frameworks, i got in touch with the terms of dependency injection and service locator. While the ideas behind the to terms a quick clear so far, i wanted to know how dependency injection is implemented. Because of that, i took a look into some implementations and i'm still in the process of getting a feeling of the terms and process for dependency injection.
Nevertheless, i had to use and implement some AwareInterfaces and here are my thoughts about the.
A AwareInterface should have three methods:
- setObject(\My\Object $object)
If a class is not useable without the object, it should either throw an runtime exception or implement the InjectInterface.
A InjectInterface should only have one method:
Currently, i prefer to define InjectInterfaces if they are needed to use a object. The AwareInterface is used as an addition / nice to have object, for example if you want to inject a logger. This leads to situations that a class only implements a "FooInjectInterface" or a "FooAwareInterface".
Lets see where the journey goes. Hopefully i don't have to overturn the position from above.
A teammate made the suggestion to rename the "InjectInterface" to "DependentInterface" to keep the naming in sync with the "AwareInterface".