Case study backend PHP

Legacy PHP Refactoring Lab

Laboratorium refaktoryzacji legacy PHP: ochrona zachowania, ekstrakcja serwisów, bezpieczniejsza struktura i stopniowa modernizacja.

Case study

Zakres techniczny

Część repozytoriów jest prywatna do czasu zamknięcia prac. Zakres projektu, decyzje techniczne i scenariusze działania są opisane na stronie. Kod mogę omówić na rozmowie technicznej.

01

Problem

  • Legacy PHP zwykle nie pozwala na bezpieczne duże przepisywanie, bo nie wiadomo, które zachowania są przypadkiem, a które kontraktem systemu.
  • Projekt pokazuje strategię małych kroków: najpierw zamrożenie zachowania, potem ekstrakcja serwisu i dopiero później poprawianie struktury.
02

Decyzja techniczna

  • Najpierw charakterystyka, małe szwy, stopniowe porządkowanie.
  • legacy/ zostaje zachowane jako punkt startowy, żeby refaktoryzacja była porównywalna z pierwotnym zachowaniem.
  • src/Application jest docelowym miejscem dla serwisów aplikacyjnych wyciąganych z proceduralnego kodu.
  • docs/ADR-001-refactoring-strategy.md pełni rolę guardrails, a phpstan.neon jest wejściem do stopniowego zwiększania rygoru jakości.
03

Efekt

  • Kroki refaktoryzacji i ochrona zachowania.
  • Scaffold legacy/, src/Application, tests/Characterization, ADR guardrails i phpstan.neon.
  • Zdefiniowany pierwszy milestone dla behavior-locking tests i ekstrakcji jednej application service.
  • Przygotowanie pod DTO, walidację i stopniowe podnoszenie poziomu analizy statycznej.
04

Stack

  • Legacy / PHP / Refactor / Tests
  • composer install
  • composer test