PHP 4? OMG! A small vademecum for obsolete software migration.

1,652 views

Published on

A small vademecum for obsolete PHP 4 software migration.

Published in: Technology
  • Be the first to comment

PHP 4? OMG! A small vademecum for obsolete software migration.

  1. 1. PHP 4? OMG! A small vademecum for obsolete software migration. Francesco Fullone, Ideato.it ff AT ideato.it
  2. 2. Who am I Francesco Fullone - PHP developer since 1999 - GrUSP President - PHP and Open Source Evangelist - CEO @ Ideato.it - Nerd and geek
  3. 3. How many of you still use PHP 4?
  4. 4. Do you know that the official PHP 4 support has ended on 8 August 2008?
  5. 5. Usage of PHP 4 (2008/10) ph p 4 ph p 5 data from Nexen.net
  6. 6. The “Never touch a running system” rule
  7. 7. “Why upgrade? My servers work fine!” But the hardware is no longer supported and the spare parts are no longer available.
  8. 8. “Why upgrade? My software works fine!” But the dependencies libraries are outdated and no more developed.
  9. 9. “Why upgrade? My code works fine!” But the knowledge is missed and the best practice never applied.
  10. 10. Sometimes rewriting from scratch is not an option.
  11. 11. We need a migration plan. A good one.
  12. 12. Create Tests.
  13. 13. Create a tests suite: A good test suite should be both Unit and Functional. At least we have to: - test the core functionality (ie. Login) - test the workflows - test third party interaction - test all the classes (if the code is OO)
  14. 14. Acceptance Tests: If the code can't be unit tested (phpUnit), use acceptance tests (Selenium-IDE).
  15. 15. Check for libs, code smells and dependancies. Create Tests.
  16. 16. Check for libs, code smells and dependancies. - <% ASP TAG?! %> - Old global array $HTTP_*_VARS - Magic Quotes - Register Globals - Safe mode - Old PEAR/phpClasses classes - Dismissed PHP_modules
  17. 17. #pear install PHP_CompatInfo
  18. 18. Rollback to the default PHP.INI Check for libs, code smells and dependancies. Create Tests.
  19. 19. A lot of things changed in the PHP.INI, try to use the default values during the upgrade process. Enable the LOG to the Notice level.
  20. 20. Upgrade PHP and the system iteratively. Rollback to the default PHP.INI Check for libs, code smells and dependancies. Create Tests.
  21. 21. Read the LOG, use the tests, do code refactoring, upgrade the system.
  22. 22. Repeat this mantra
  23. 23. THE END?
  24. 24. NO!
  25. 25. Now it's time to do serious code refactoring: - create proper unit tests - use standard development pattern - use an enterprise level framework - remove unused modules
  26. 26. ?
  27. 27. Francesco Fullone ff AT ideato.it via Quinto Bucci 205 47023 Cesena (FC) info AT ideato.it www.ideato.it www.fullo.net www.grusp.it www.phpday.it

×