5.7 KiB
Plan Refaktoryzacji: shop_payment_method
Data utworzenia: 2026-02-14 Status: ZREALIZOWANY (Etapy 1-4 zakonczone: 2026-02-14)
1. Cel
Pelna migracja modulu /admin/shop_payment_method/* do obecnego standardu projektu:
Domain/*dla logiki danych,admin/Controllers/*z DI dla routingu,- widoki oparte o
components/table-listicomponents/form-edit, - usuniecie legacy klas/podpiecie zaleznosci.
2. Stan obecny (inwentaryzacja)
Aktualny modul jest legacy i opiera sie o grid:
autoload/admin/controls/class.ShopPaymentMethod.phpautoload/admin/factory/class.ShopPaymentMethod.phpautoload/admin/view/class.ShopPaymentMethod.php(pusta)admin/templates/shop-payment-method/view-list.php(grid + inline edit)- menu:
admin/templates/site/main-layout.php->/admin/shop_payment_method/view_list/
Zaleznosci wykryte poza modulem:
autoload/admin/controls/class.ShopTransport.phpkorzysta zadmin\\factory\\ShopPaymentMethod::payments_list()autoload/front/factory/class.ShopPaymentMethod.phpma bezposrednie zapytania dopp_shop_payment_methodsautoload/shop/class.PaymentMethod.phpma bezposrednie zapytania dopp_shop_payment_methodscron.phpkorzysta zfront\\factory\\ShopPaymentMethod::get_apilo_payment_method_id()
3. Zakres refaktoru
W zakresie:
- Nowe repozytorium domenowe dla metod platnosci.
- Nowy kontroler admin z DI i routingiem kanonicznym.
- Nowe widoki listy i edycji (bez legacy
grid). - Przepiecie zaleznosci (
ShopTransport,front\\factory\\ShopPaymentMethod,shop\\PaymentMethod) na nowe API. - Cleanup legacy klas/plikow zwiazanych z modulem.
- Testy jednostkowe + aktualizacja dokumentacji.
Poza zakresem (na ten etap):
- Refaktoryzacja calego modulu
shop_transport(zrobimy tylko przepiecie zaleznosci dot. payment methods). - Zmiany biznesowe w checkout poza zachowaniem obecnej logiki.
4. Architektura docelowa
Planowane nowe pliki:
autoload/Domain/PaymentMethod/PaymentMethodRepository.phpautoload/admin/Controllers/ShopPaymentMethodController.phpadmin/templates/shop-payment-method/payment-methods-list.phpadmin/templates/shop-payment-method/payment-method-edit.php
Planowane aktualizacje:
autoload/admin/class.Site.php(rejestracjaShopPaymentMethodw DI routerze)admin/templates/site/main-layout.php(kanoniczny URL/admin/shop_payment_method/list/)autoload/admin/controls/class.ShopTransport.php(usuniecie zaleznosci od legacy factory)autoload/front/factory/class.ShopPaymentMethod.php(fasada delegujaca do Domain repo)autoload/shop/class.PaymentMethod.php(fasada delegujaca do Domain repo)
Planowane usuniecia:
autoload/admin/controls/class.ShopPaymentMethod.phpautoload/admin/factory/class.ShopPaymentMethod.phpautoload/admin/view/class.ShopPaymentMethod.phpadmin/templates/shop-payment-method/view-list.php
5. Etapy realizacji (Human In The Loop)
Etap 1: Domain + testy repozytorium
Zakres:
- utworzenie
PaymentMethodRepositoryz metodami:listForAdmin(...)find(int $id)save(int $id, array $data)allActive()findActiveById(int $id)isActive(int $id)getApiloPaymentTypeId(int $id)forTransport(int $transportId)
- dodanie testu:
tests/Unit/Domain/PaymentMethod/PaymentMethodRepositoryTest.php
Checkpoint:
- STOP i prosba o akceptacje po wdrozeniu etapu 1.
Etap 2: Admin Controller + routing + nowe widoki
Zakres:
- nowy
ShopPaymentMethodController(akcje:list,edit,save) - migracja listy/edycji na
table-list+form-edit - podpiecie w
admin\\Site(DI factory map) - kompatybilnosc URL:
- kanoniczne:
/admin/shop_payment_method/list|edit|save/ - aliasy legacy do decyzji po wdrozeniu (proponuje: tymczasowo wlaczyc)
- kanoniczne:
- test kontrolera:
tests/Unit/admin/Controllers/ShopPaymentMethodControllerTest.php
Checkpoint:
- STOP i prosba o akceptacje po wdrozeniu etapu 2.
Etap 3: Przepiecie zaleznosci miedzymodulowych
Zakres:
ShopTransportpobiera liste platnosci przez nowe repozytorium (bez legacy factory)front\\factory\\ShopPaymentMethodjako fasada do repozytorium domenowegoshop\\PaymentMethodjako fasada do repozytorium domenowego- zachowanie dotychczasowych podpisow metod (BC)
Checkpoint:
- STOP i prosba o akceptacje po wdrozeniu etapu 3.
Etap 4: Cleanup + finalne testy + dokumentacja
Zakres:
- usuniecie legacy klas/plikow dla
shop_payment_method - uruchomienie testow:
- najpierw targetowane testy PaymentMethod,
- potem caly suite (
composer testlub./test.ps1)
- aktualizacja dokumentacji:
docs/DATABASE_STRUCTURE.mddocs/PROJECT_STRUCTURE.mddocs/REFACTORING_PLAN.mddocs/CHANGELOG.mddocs/TESTING.md
Checkpoint:
- STOP i prosba o finalna akceptacje przed etapem release (zip/commit/push wg procedury KONIEC PRACY, jesli zlecisz).
6. Ryzyka i kontrola regresji
-
Ryzyko: utrata kompatybilnosci URL (
view_list). Kontrola: tymczasowe aliasy lub redirect + test akcji. -
Ryzyko: regresja checkout przy pobieraniu metod platnosci. Kontrola: zachowanie podpisow metod we
front\\factory\\ShopPaymentMethodishop\\PaymentMethod, testy repozytorium. -
Ryzyko:
ShopTransportprzestanie pokazywac metody platnosci. Kontrola: jawne przepiecie zaleznosci i test manualny widoku edycji transportu.
7. Kryteria akceptacji
/admin/shop_payment_method/list/dziala na nowym kontrolerze i nowym widoku./admin/shop_payment_method/edit/id={id}i zapis dzialaja bezgrid.- Brak zaleznosci od legacy
admin\\controls\\ShopPaymentMethodiadmin\\factory\\ShopPaymentMethod. ShopTransport, frontend checkout icron.phpdzialaja na niezmienionych API publicznych.- Nowe testy przechodza, a pelny suite nie ma regresji.