←back to thread

257 points pmig | 1 comments | | HN request time: 0s | source
Show context
DrScientist ◴[] No.43100646[source]
Never quite understood the attraction of dependency injection frameworks.

Sure pass in your dependencies as an interface via some sort of constructor, but why all the frameworks to do so?

Why all the complexity with hard to debug magic strings, annotations and finding out what's missing from the classpath at runtime?

Just seems as a very complicated way to avoid creating package c that brings together package a and dependency b in a simple class that creates b and passes it into a.

What am I missing?

replies(4): >>43100728 #>>43100842 #>>43102999 #>>43113106 #
1. tored ◴[] No.43113106[source]
Dependency injection containers can be overly complex and allow complex configurations, too much magic.

That is why I kept my container library simple, you read thru all the source in less than 15 minutes.

What I like about it is that it is natural to use composition with classes, it encourages to create classes to divide your application into reusable parts.

And with my library all you do is to put the dependent class in the constructor. My library can without much effort be replaced with normal factory, that is by design.

Warning PHP https://github.com/paketphp/bero