Migration von einem PHP-Framework zu einem anderen

10

Ich arbeite mit einem Web-Unternehmen zusammen, das sich einem Punkt nähert, an dem es wahrscheinlich notwendig sein wird, das Produkt als V2 zu überdenken - da einige seiner V1-Grundlagen und -Prinzipien, die in praktisch alles eingebaut wurden, vom Datenmodell bis zum Benutzeroberflächen. Aus verschiedenen Gründen kann diese Entwicklung eine Migration von CakePHP (mit dem die V1 erstellt wurde) zu Symfony oder Zend beinhalten.

Ich möchte nach einigen erfahrenen Ansichten darüber fragen, wie Menschen einen solchen Übergang für eine Website mit erheblichem Datenverkehr und Umsatz generiert haben könnten. Ich möchte keine Diskussion über die Vor- und Nachteile verschiedener PHP-Frameworks eröffnen oder darüber, warum diese Migration möglicherweise erforderlich ist. Vielmehr würde mich sehr interessieren, ob es einige praktische Alternativen gibt, um ein paar Monate lang neben dem V1 einen V2 von Grund auf neu zu bauen - und wertvolle Codierungszeit für die Dauer dieses intensiven Zeitraums zu sichern. Ein Beispiel für eine solche Alternative könnte die teilweise Migration einer App über einen längeren Zeitraum sein.

Ich wäre dankbar für alle Ansichten von Menschen, die solche Übergänge geschafft haben oder daran beteiligt waren.

Danke im Voraus.

Tom
quelle

Antworten:

2

Wenn es sich um eine kommerzielle Anwendung handelt, die das Geschäft Ihres Unternehmens ist, ist es möglicherweise besser, auf ein Framework eines Drittanbieters zu verzichten. Wenn dann die Zeit für v3 kommt, werden Sie nicht wieder mit demselben Problem konfrontiert sein. Und Sie werden nie in einer Situation sein, in der Sie Ihren Code als Reaktion auf Aktualisierungen des Frameworks ständig anpassen müssen. Frameworks eignen sich hervorragend, um Dinge schnell zum Laufen zu bringen. Wenn dies jedoch a) Kern Ihres Unternehmens ist und b) langfristig gewartet wird, verringert sich der Wert des Frameworks.

GroßmeisterB
quelle
1
Danke - Nützliche Perspektive, obwohl Frameworks das Leben in Bezug auf so viele Dinge erleichtern, dass es schwierig ist, die Idee zu unterhalten, sie nicht zu verwenden. Sie können auch angepasst werden und müssen nicht immer aktualisiert werden, es sei denn, dies ist wirklich erforderlich (z. B. Sicherheitslücken, mangelnde Unterstützung für X usw.). Akzeptieren Sie diese Antwort, da es sich wirklich um eine "Lösung" handelt, anstatt zu versuchen, herauszufinden, warum der Framework-Switch möglicherweise benötigt wird.
Tom
1
Diese Antwort ist überhaupt keine Lösung.
James
6

Lernen Sie das neue Framework zuerst sehr gut kennen und stellen Sie sicher, dass es Ihren Anforderungen entspricht und dass Sie die Paradigmen des neuen Frameworks wirklich verstehen. Sie müssen eine Menge Code wegwerfen, und das ist in Ordnung. Wichtig ist, dass Sie das neue Framework so verwenden, wie es verwendet werden sollte, die Funktionen voll ausnutzen und nicht an Denkweisen Ihres alten Frameworks gebunden sind. Versuchen Sie nicht, Zend "the CakePHP way" * zu verwenden

Als ich zum Beispiel das MVC-Framework von früheren Nicht-MVC-Frameworks verwendete, verstand ich nicht wirklich, wie Modelle, Ansichten und Controller funktionieren sollten, und schrieb schrecklich aussehenden Code, weil ich den neuen nicht verstand Art Dinge zu tun. Es ist besser, an einem minderwertigen alten Framework festzuhalten, als eine schlecht geschriebene App auf einem besseren Framework zu haben.

* Ich bin auch nicht vertraut, daher weiß ich nicht, wie ähnlich / vergleichbar sie sind.

GSto
quelle
+1 fürDon't try to use Zend "the CakePHP way
Tim Post
Weißt du, wenn Leute '+1' sagen, geben sie normalerweise tatsächlich +1, indem sie die Antwort abstimmen;)
GSto
Entschuldigung, Internet-Schluckauf. :) TCP über Brieftaube hier.
Tim Post
Danke für die nützliche Antwort. Ich habe mich sowohl mit Zend als auch mit CakePHP beschäftigt, und obwohl ich Ihrem Kommentar zustimme, kann ich ihn grundsätzlich nicht "akzeptieren", wenn es keine praktische Erfahrung ist.
Tom
5

Das erste, was Sie berücksichtigen sollten, ist, dass Sie ein Produkt von Grund auf neu schreiben sollten . Dies gilt insbesondere dann, wenn Sie mit der aktuellen Version bereits Geld verdienen. Grundsätzlich werden Sie 6 Monate Zeit verbringen, nur um dorthin zurückzukehren, wo Sie vor 6 Monaten waren. Erst jetzt haben Sie mehr Fehler (oder zumindest verschiedene Fehler), wieder eingeführte Fehler, die bereits im alten Code behoben wurden, und Sie sind sechs Monate hinter dem zurück, wo Sie hätten sein können, wenn Sie gewesen wären Hinzufügen von Funktionen zur alten Codebasis.

CakePHP, Zend und Symphony sind weitgehend identisch (dh sie sind alle MVC-Frameworks über PHP), daher bin ich mir nicht sicher, welchen Vorteil Sie von einem zum anderen haben würden. Es gibt sicherlich Unterschiede im Funktionsumfang, aber lohnt es sich wirklich, sich die ganze Zeit zurückzusetzen? Könnten Sie für die Zeit, die Sie in Zend oder was auch immer von Grund auf neu schreiben würden, dieselbe Zeit damit verbringen, Cake die erforderlichen Funktionen hinzuzufügen?

Meiner Meinung nach ist es besser, Ihren vorhandenen Code im Laufe der Zeit langsam umzugestalten, als mit einem neuen Framework ganz von vorne zu beginnen.

Das ist natürlich nur meine Meinung. Ich weiß, dass es verlockend ist, vorhandenen (hässlichen, alten) Code zu löschen und von vorne zu beginnen, aber für etablierte Produkte, die bereits funktionieren, gibt es normalerweise wenig zu gewinnen und viel zu verlieren.

Dean Harding
quelle
Genau das, was ich dachte. Es macht keinen Sinn, hier umzuschreiben, denn es scheint kein starkes Argument dafür zu geben, dass es eine wirtschaftliche Entscheidung sein wird.
EricBoersma