Talk in English - US at Longhorn PHP 2025
Track Name:
Elm
Short URL: https://joind.in/talk/5d4c9
(QR-Code (opens in new window))
This experiential talk addresses the challenges and recommended practices for upgrading multiple large, integrated codebases from PHP 5.3 to PHP 8 within a compressed nine-month timeline. Though it may be preaching to the choir, even the choir needs preaching to from time to time about why upgrades matter: security, performance improvements, new language features—and did I mention security? When stakeholders resist investing in updates, involving cybersecurity teams to highlight vulnerability risks can create necessary momentum.
Organizations typically accumulate technical debt through absent upgrade processes, perceived difficulty, non-standard extensions, and deprioritization of maintenance work. The presentation emphasizes that staying current is ultimately easier than catching up, advocating for frequent practice of difficult tasks until they become routine.
The talk acknowledges starting points matter: the subject codebases were messy, procedural, highly duplicated, and lacking modern structure. No automated testing or static analysis existed at the outset. As a newcomer to the company, I faced the additional challenge of working with codebases that neither I nor my team fully understood. Though the codebases ran on PHP for Windows, the principles and processes described are platform agnostic. Drawing from previous multi-year PHP migration experiences, the accelerated nine-month approach required rigorous methodology and careful planning. PhpStorm is highly advocated as a crucial tool, especially when tackling PHP updates for very old code.
The outlined process begins with enforcing standardization and comprehensive error capture without suppression. A crucial early step involves the challenging task of implementing static analysis and automated testing for procedural legacy code—requiring imaginative, often non-standard approaches that would eventually be discarded as the codebase modernized. The process continues with implementing future-compatible code structures before methodically progressing through PHP 5's minor versions, then to PHP 7, and finally to PHP 8. Throughout, special emphasis is placed on developing sustainable upgrade methodologies to meet the aggressive timeline while creating processes that make future updates more manageable.
Comments
Comments are closed.