Die Definition von DI aus Wikipedia zitiert heißt es:machen diese Klasse mit dem Prinzip Inversion Abhängigkeit erfüllt
A. High-level-Module nicht auf Low-Level-Module abhängen. Beide sollten von Abstraktionen abhängen. B. Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.
Ich versuche, diesen Grundsatz zu meinen Code anwenden:
class Printer{
private $logger;
function __construct(Zend_Log $logger){
$this->logger=$logger;
}
function print(){
//Some code
$this->logger->log('Logger in action ;)');
}
}
Da nun, warum hängt Printer
Klasse auf Zend_Log
die weder eine abstrakte Klasse ist noch eine Schnittstelle dann bin ich zu verletzen die Abhängigkeit Inversion Prinzip.
Wie kann ich das beheben, wissend, dass Zend_Log
keine abstrakte Klasse erweitert noch eine Schnittstelle implementieren?
Schöne Frage .. –