Co należy zrobić, aby zapewnić płynną migrację z PHP4 do PHP5. Jakie rodzaje kodów mogą się zepsuć?Migracja PHP4 do PHP5
Odpowiedz
Pracowałem też kiedyś nad aplikacją, która dość mocno korzystała z obsługi XML-a PHP4 i wymagałaby sporo pracy, aby przejść do PHP5.
Jedną z innych istotnych zmian, na które patrzyłem w tym czasie, była zmiana domyślnej obsługi parametrów funkcji. W PHP4, jeśli pamiętam, były one przekazywane przez kopie, chyba że podano inaczej, ale w PHP5 domyślnie jest zmieniany na przekazywanie. W dobrze napisanym kodzie, prawdopodobnie nie zrobi to dużej różnicy, ale z pewnością może spowodować problemy.
Myślę, że jedną z rzeczy, które znalazłem zmienione, jest to, że obiekty nie mogą już nadpisywać pola "tego". Powiedziałbym, że był to naprawdę zły pomysł (i myślę, że nie był to celowy aspekt w PHP4), ale z pewnością znalazłem kilka części naszego systemu, które się na nim opierały.
Mam nadzieję, że niektóre z nich pomagają.
Mieliśmy aplikację, która oparła się głównie na PHP 4 funkcje XML DOM i to wymaga dużo przezbrojenia zmienić na PHP 5.
poza tym większość zmian zostały ulepszenia rzeczy jak obsługi błędów (w celu skorzystania wyjątków) i klas PHP.
Najlepszą radą mogę dać nikomu pracy z PHP4 to:
error_reporting(E_ALL);
To dość dużo powie dokładnie to, co trzeba zrobić.
Przed lub po migracji? –
OOP jest jedną z największych różnic. Nie złamie się, ponieważ style OOP w PHP4 i PHP5 są wymienne, ale polecam korzystanie z nowych stylów OOP PHP5. Przekształcenie istniejących klas na PHP5 nie jest wielkim wysiłkiem i daje dodatkowe magiczne metody, które mogą pomóc w rozwiązaniu niektórych istniejących hacków (pamiętam, że w większości klas używam prawie bezużytecznej metody równoważnej __toString).
- 1. Oficjalne zakończenie obsługi PHP4?
- 2. Pierwsze cronjob uruchomić skrypt PHP jako PHP5
- 3. Migracja do Django 1.4
- 4. Migracja do jquery 1.4
- 5. Migracja Microsoft.Build.BuildEngine.Engine do Microsoft.Build.Evaluation.ProjectCollection
- 6. Migracja do WKWebView
- 7. Jaka jest różnica między PHP5 i php5-dev
- 8. Migracja z Jam do CMake
- 9. migracja TAAE2 do AudioKit 3
- 10. Migracja z NetBeans do Eclipse
- 11. Migracja do NumPy API 1.7
- 12. Migracja z MySQL do Crate
- 13. Migracja z JSP do Freemarker
- 14. Migracja z WinForm do WPF
- 15. Migracja z DataSets do EntityFramework
- 16. Postgresql migracja JSON do JSONB
- 17. migracja do C# z Java
- 18. Migracja ze Stata do Pythona
- 19. Migracja z MySQL do PostgreSQL
- 20. Błąd podczas instalacji php5-mcrypt
- 21. Wywołaj metodę Java z PHP5
- 22. Jak pobrać prywatne dane za pomocą YQL na Yahoo PHP5 Sdk yos-social-php5
- 23. Jak przekonwertować dwuwymiarowej tablicy do jednej tablicy wymiarowe w PHP5
- 24. Migracja z Restful Authentication do Devise
- 25. Migracja z Jetty 6 do Jetty 8
- 26. Migracja z SVN do Perforce - porady? Doświadczenie?
- 27. Migracja kątowa 4.x do Kątowymi 5
- 28. Migracja do Tomcat 8: InstanceAlreadyExistsException DataSource
- 29. (Automatycznie) migracja projektu CodePlex do GitHub
- 30. Migracja do Arc ze złymi standardami nazewnictwa
Po prostu zauważyłem ten wpis na górze wyników wyszukiwania Google, gdy szukałem argumentów PHP4 i PHP5 przekazywanych do zachowania funkcji. [instrukcja php] (http://php.net/manual/en/functions.arguments.php) stwierdza inaczej; przekazywanie wartości (pass-by-copy) to _still_ domyślnie. –