Files
cmsPRO/.paul/changelog/2026-04-30.md
Jacek Pyziak a3caeb9a9a feat(06-admin-base): Admin\ base infrastructure — Form Edit System + Support layer (Phase 6)
Phase 6 zamknięta po 2 planach. Pełny fundament dla Phase 7-13 (migracja
17 admin controllers do Admin\ namespace).

06-01 (Forms infrastructure):
- Admin\ViewModels\Forms\* — 5 ViewModeli (687 L)
- Admin\Validation\FormValidator (196 L)
- composer.json: php >=7.4, PSR-4 paths cross-platform safe
  (Admin\ → autoload/admin/, Frontend\ → autoload/front/)

06-02 (Support layer):
- Admin\Support\TableListRequestFactory (99 L) — parser list z $_GET
- Admin\Support\Forms\FormRequestHandler (159 L) — POST + CSRF + walidacja + persist
- Admin\Support\Forms\FormFieldRenderer (494 L) — renderer HTML pól

Decyzje:
- Brak BaseController — Phase 7+ kontrolery jako POJOs z DI (jak shopPRO)
- PSR-4 filename fix: TableListRequestFactory.php (bez shopPRO 'class.' prefix)
- PascalCase namespace (Admin\Support) na lowercase folder admin/
  ze względu na Windows fs case-insensitivity vs legacy admin/controls/

Pliki: 8 nowych klas, 1635 L kodu PHP 7.4-kompatybilnego, zero regresji.
Smoke test: walidacja e-maila zwraca PL komunikat, factory parsuje
?page=&per_page=&sort=&filter=, Domain/Shared nadal ładują się.

PHPUnit: 37/37 OK.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 23:32:26 +02:00

1.9 KiB

2026-04-30

Co zrobiono

  • [Phase 6, Plan 06-01] Forms infrastructure — przeniesienie warstwy Form Edit System z shopPRO do cmsPRO pod namespace Admin\ (PascalCase)

  • Skopiowano 5 ViewModeli (FormEditViewModel, FormField, FormFieldType, FormTab, FormAction) do Admin\ViewModels\Forms\

  • Skopiowano FormValidator do Admin\Validation\

  • Dodano "php": ">=7.4" do composer.json

  • Naprawiono PSR-4 mapowanie: Admin\autoload/admin/, Frontend\autoload/front/ (cross-platform Linux safe)

  • Smoke test runtime: walidacja e-maila zwraca PL komunikat ✓

  • Zero regresji: Domain\ + Shared\ ładują się dalej

  • [Phase 6, Plan 06-02] Support layer — TableListRequestFactory + FormRequestHandler + FormFieldRenderer (752 L) skopiowane z shopPRO

  • Decyzja: brak BaseController — Phase 7+ kontrolery jako POJOs z DI (jak shopPRO)

  • PSR-4 filename fix: TableListRequestFactory.php zamiast shopPRO class.TableListRequestFactory.php

  • Phase 6 zamknięta — pełny fundament Admin\ namespace gotowy dla Phase 7+

Zmienione pliki

  • autoload/admin/ViewModels/Forms/FormEditViewModel.php (utworzony)
  • autoload/admin/ViewModels/Forms/FormField.php (utworzony)
  • autoload/admin/ViewModels/Forms/FormFieldType.php (utworzony)
  • autoload/admin/ViewModels/Forms/FormTab.php (utworzony)
  • autoload/admin/ViewModels/Forms/FormAction.php (utworzony)
  • autoload/admin/Validation/FormValidator.php (utworzony)
  • composer.json
  • vendor/composer/autoload_* (regen)
  • .paul/STATE.md, .paul/ROADMAP.md
  • .paul/phases/06-admin-base/06-01-PLAN.md (utworzony)
  • .paul/phases/06-admin-base/06-01-SUMMARY.md (utworzony)
  • autoload/admin/Support/TableListRequestFactory.php (utworzony)
  • autoload/admin/Support/Forms/FormRequestHandler.php (utworzony)
  • autoload/admin/Support/Forms/FormFieldRenderer.php (utworzony)
  • .paul/phases/06-admin-base/06-02-PLAN.md (utworzony)
  • .paul/phases/06-admin-base/06-02-SUMMARY.md (utworzony)