2009-07-03 7 views
3

PHP Version 5.3 wurde veröffentlicht, und obwohl es gut aussieht, funktioniert mein Code bereits gut. Ich sehe nicht, was diese neue Version bietet, um das Upgrade und das Durcharbeiten möglicher Probleme nach dem Upgrade zu rechtfertigen.Sollte ich auf PHP 5.3 upgraden?

Sollte ich sowieso nur für eine gute Übung upgraden, oder ist ein Upgrade nicht erforderlich, wenn ich nicht die neuen Funktionen nutze?

+2

* Lustige Kommentar * Sie sollten wirklich. Der neue „Sprungmarke“ Operator sieht gut aus: GOTO :-D –

Antwort

14

Sie könnten ein Upgrade nur für die "Verbesserte PHP-Laufzeit und Speichernutzung" und Fehlerkorrekturen in Erwägung ziehen. Source. Ich würde auch sagen, dass, wenn Sie create_function irgendwo verwenden, sollten Sie dieses hässliche, eklige Durcheinander mit dem viel saubereren lambda verbessern und ersetzen. Here ist der Migrationsleitfaden von 5.2.

+0

Ich würde sagen, die „verbesserte PHP-Laufzeitgeschwindigkeit & Speichernutzung“ schwer zu verkaufen sein würde, wenn verglichen mit der Zeit Sie können Ihre Upgrade-Code Fehlerbehebung zu nehmen haben zu tun auf deinen eigenen Code. Persönlich, das ist, was ich mit meiner Neugier, bis eine 5.3.1-Release zerquetschen. – Kzqai

0

Ich denke über die gleiche Sache ... wenn etwas für die Fehlerbehebungen aktualisieren, aber überprüfen Sie die Kompatibilität, ein paar Dinge haben sich in dieser Version geändert (Goto, Namespaces, Parsing Parameter, mhash, etc ...),

ersetzen create_function mit lambdas sollte genug in sich selbst zu aktualisieren, die Speicherauslastung und Overhead mit create_function ist lächerlich.

Kontrolle der Migrationsleitfaden http://us.php.net/migration53

+0

Kompatibilität ist mein Hauptproblem. –

+0

Ja. Ich würde gerne auf 5.3 upgraden, um neue Funktionen auszuprobieren, aber ich möchte nicht den Prozess des Debuggens von Diskrepanzen zwischen 5.2.6 und 5.3 solo starten, nur um die neuen Sachen auszuprobieren. – Kzqai

1

Es gibt zwei Dinge, die Sie interessieren könnten, die erste ersetzt create_function() s mit Lambda-Ausdrücke, die andere in die späte statische Bindung suchen. Nun, da LSB verfügbar ist, gibt es einige Dinge, die viel sauberer und effizienter gelöst werden können.

Persönlich habe ich Eigenschaften erwartet, aber es wurde nicht in dieser Version enthalten. Ich war so traurig, als ich herausfand :(. Jetzt erinnere ich mich nicht mehr, warum ich dachte, dass es in 5.3 enthalten wäre.

2

Ich würde sagen, es gibt ein paar große Fragen, die Sie beantworten müssen, um diese Entscheidung zu treffen Die größte davon ist, was Ihre Website/Produkt/Kunden tun? Wenn Sie eine Anwendung verwalten (wie sagen, ein CMS oder Warenkorb), dann müssen Sie verstehen, dass viele Hosts nicht für eine Weile aktualisieren werden, weil sie warten offiziell unterstützt packages/RPMs für das Betriebssystem sie nutzen, und sie einige Zeit dauern, zu bauen, zu testen und Release.

Wenn dies nur eine benutzerdefinierte Website auf einem dedizierten Server die gleiche Frage sein kann, läuft etwas, was wichtig ist. Während In diesem Fall können Sie immer von Hand kompilieren, dass nicht unbedingt die beste Idee ist, wenn Sie über eine saubere, o. Anal rganisiert, Server wie ich bin. Wie Jason bereits erwähnt hat, sollte es signifikante Geschwindigkeitsverbesserungen geben, und wie WishCow sagte, wenn Sie create_function() verwenden, können Sie sie jetzt für saubereren Code abstellen.

Denken Sie auch daran, dass alle Bibliotheken/Erweiterungen von Drittanbietern (PECL, PEAR, Zend Framework, Drupal, Wordpress oder benutzerdefinierte geschrieben), die Sie verwenden, 5.3 aus irgendeinem Grund nicht funktioniert.

Ein Trockenlauf-Upgrade ist immer besser, wenn es möglich ist. Ich habe einen Server neben meinem Schreibtisch zu Hause, den ich verwenden kann, um ein Profiler zu aktualisieren und einzuschalten, um zu sehen, wie die Leistung meiner Aufstellungsorte aussieht und sicherzustellen, dass alles funktioniert. Wenn du das nicht kannst, dann musst du vorsichtig sein, denn es besteht die Möglichkeit, dass du etwas Ausfallzeit hast, wenn die Dinge nicht reibungslos verlaufen.