Dies ist vielleicht nicht die genaue Antwort, nach der Sie suchen, aber ich kann mir nicht vorstellen, dass viele Leute Erweiterungen für ältere Versionen entwickeln.
Einfach upgraden, es ist sowieso unvermeidlich
Die offensichtliche Lösung besteht darin, dass der 1.5-Kunde auf 1.7 aktualisiert ( 1.5 ist ohnehin eine schrecklich kaputte Version ).
Aber wenn du musst
Wenn wir uns darum kümmern müssten, müsste lediglich das Modul mit einem sekundären Basismodul gesichert werden, um die von Ihnen benötigten Kernfunktionen zurück zu portieren. Wenn dann die Zeit für ein Upgrade gekommen ist, kann das Abhängigkeitsmodul lediglich gelöscht / entfernt werden.
Die Nachteile sind, dass Sie möglicherweise abstrakte Klassen überschreiben können, nur um eine einzelne Funktion hinzuzufügen / zu ändern. Die dafür investierte Zeit könnte durchaus mit der anfänglichen Aufrüstung des Geschäfts vergleichbar sein.
In Bezug auf die Abwärtskompatibilität von Erweiterungen scheint dies eine seltsame Praxis zu sein, da Sie Kompromisse für neuere Versionen eingehen. Extensions altern in der Regel auf natürliche Weise, sodass sie eher rückwärtskompatibel sind. Sie entwickeln darauf, um es vorwärtskompatibel zu machen.
Wenn Sie sich jemals den Quellcode von Modulen von Drittanbietern angesehen haben; Sie sind in der Regel mit Mage::getVersion()
Aufrufen und bedingten Anweisungen gefüllt - alle sind mit mehreren Versionen kompatibel. Es ist chaotisch und sollte vermieden werden. In Wirklichkeit sollten Sie verschiedene Versionen von Erweiterungen für verschiedene Versionen von Magento haben. Andernfalls werden Sie eine Erweiterung unterstützen, die Abweichungen in den Klassenmethoden und eine zunehmende Anzahl von bedingten Anweisungen aufweist.
Obwohl hier ein gutes Beispiel dafür ist, warum nicht
Ich verstehe deine Logik. Aber was in Fällen wie dem 1.4.1
> 1.4.2
Upgrade und den EAV-Verkaufstabellen passiert, wurde gelöscht. Alle neueren Funktionen, die auf der Grundlage dieser Tabelle ausgeführt werden, sind jetzt flach. Der Versuch, dies zurück zu portieren, ist also weitaus mühsamer als es sich lohnt. Dies kann extrem sein und Sie werden eindeutig beurteilen, wie viel Zeit Sie investieren müssen.
Die neueste Version von Magento wird für immer ein bewegliches Ziel sein und die Wahl haben, ob neue Module mit älteren Geschäften funktionieren sollen oder ältere Module mit neueren Geschäften. Ich weiß, was wir lieber machen würden. Die Ablehnung von Funktionen ist langsam und elegant, und Sie haben genügend Zeit, um sie neuer zu machen.