2012-05-22 9 views
9

Ich habe eine riesige Website, die in symfony 1.4 (auf eine sehr schlechte Weise) geschrieben wurde, ich wurde gebeten, einige wesentliche Änderungen an der Navigation zu machen, fügen Sie einige Funktionen und so weiter .. unter Berücksichtigung der Bemühungen, ich frage mich, ob es besser wäre, die radikale Entscheidung zu ergreifen, um die gesamte Website auf Symfony 2.0 zu portieren, aber ich bin mir nicht sicher, wie schwer das sein könnte.Portierung einer Website von Symfony 1.4 bis 2.0

Hat jemand das schon mal gemacht?

Haben Sie Vorschläge für Muster folgen oder Tutorials oder doc oder was auch immer?

Antwort

8

Sie können Ihr altes Projekt in ein brandneues SF2-Projekt einfügen, indem Sie this bundle verwenden. Auf diese Weise können Sie Ihr Projekt Stück für Stück migrieren, und neue Funktionen können mit sf2 entwickelt werden, sobald Sie den Wrapper zum Laufen bringen. this post about migrating

+0

sieht gut aus, ich muss mich auch vom ol'dirty treiben zu der neuen menschenfreundlichen lehre2 bewegen, damit das wirklich kommen könnte praktisch :) – holographix

4

Hier ist, wie ich es gehen würde:

Sie müssen zunächst einige Dinge lernen und zu studieren:

  • HTTP Fundamental
  • PHP Namespaces, die stark
  • Symfony2 Dokumentation verwendet
  • Dokumentation zu Symfony2
  • Dokumentation zu Symfony2
  • PHPUnit Dokumentation

Dann, wenn man den Dreh Symfony2 bekommen, müssen Sie herausfinden, was aus dem alten Projekt wiederzuverwenden:

Modelle, Business-Logik? Haben Sie Doctrine in Symfony verwendet? Wenn ja, sehen Sie sich an, wie Sie Ihre Entitäten nach Doctrine2 portieren und mehr über die Unterschiede erfahren. Wenn Sie Propel verwenden würden, würde ich versuchen, zu Doctrine2 zu wechseln und das PropelBundle nicht zu benutzen, zumindest nicht bis Sie sich an Symfony2 gewöhnt haben. Sie können eine bessere Dokumentation und einen Beispielcode für Doctrine2 finden.

Sie müssen auch Ihre alten Helfer Klassen in Symfony2 Dienste konvertieren.

Aufrufe? Symfony2 verwendet Twig als Templating-Engine, aber Sie könnten mit reinem PHP gehen.

Controller? Dies sollte symfony etwas ähnlich fühlen. Der Fluss von Symfony2 stimmt mit dem HTTP-Fluss überein, was bedeutet, dass Sie ein Request-Objekt erhalten und ein Response-Objekt erneut aufrufen müssen.

Es hängt wirklich davon ab, wie gut unser altes Projekt strukturiert ist. Symfony2 ist ein völlig anderes Biest als 1.0-1.4. Ich würde es wahrscheinlich nicht als Port bezeichnen, sondern als Neufassung. Wenn Ihr altes Projekt jedoch gut strukturiert ist, könnten Sie es wahrscheinlich wiederverwenden.

Ohne Ihren Code wirklich zu sehen, ist es unmöglich, eine gute Antwort darauf zu geben, wie schwer es wäre. Es ist sehr machbar, aber es gibt keine einfache Route. Symfony2 ist, IMHO, der Weg der Zukunft für PHP-Projekte und am Ende wirst du ein Projekt bekommen, das einfacher zu pflegen und zu unterstützen ist.

+0

ja, das ist das gleiche, was ich denke .. Ich stimme zu, dass dies eine Neufassung sein wird, anstatt ein Port, denn das aktuelle Projekt (in Symfony 1.4) ist ein Haufen Dreck/Spaghetti Code und Noob Programmierung. Es wurde von Leuten gemacht, die nicht wussten, was sie taten. Ich denke nur, dass ich mehr als 2 Wochen gebraucht habe, um die kranken Logiken hinter dem hässlichen strukturierten Code herauszufinden ... ein echter Albtraum. und jetzt, da ich meine Hände wieder darauf legen muss, bin ich wirklich sehr versucht, es in symfony 2.0 umzuschreiben. – holographix

+1

Ich würde sagen, gehen Sie dafür, Sie werden später Zeit sparen, bitte haben Sie ein echtes Projekt ist ein gute treibende Kraft, um etwas Neues zu lernen. – cvaldemar

+0

yeah, du bist soooooo richtig :) jetzt werden wir sehen. wenn das budget uns die erlaubnis gibt .. werde ich sicher bei der 2,0 bleiben (mit gr8 genuss) – holographix