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>
This commit is contained in:
2026-04-30 23:32:26 +02:00
parent 72cb5b8d1d
commit a3caeb9a9a
25 changed files with 2694 additions and 29 deletions

View File

@@ -80,7 +80,30 @@ autoload/Domain/
└── User/UserRepository.php ← \Domain\User\UserRepository ✓
```
Następne: `Admin\` namespace (Fazy 613), `Frontend\` namespace (Fazy 1416).
### Faza 6 ✓ — Admin\ Base Infrastructure (`autoload/admin/{ViewModels,Validation,Support}/`)
Skopiowane z shopPRO i przeniesione pod `Admin\` (PSR-4 PascalCase namespace, lowercase folder ze względu na case-insensitive Windows fs):
```
autoload/admin/ ← namespace Admin\* (nowe) + admin\* (legacy)
├── ViewModels/Forms/ ← Admin\ViewModels\Forms
│ ├── FormEditViewModel.php
│ ├── FormField.php
│ ├── FormFieldType.php
│ ├── FormTab.php
│ └── FormAction.php
├── Validation/
│ └── FormValidator.php ← Admin\Validation\FormValidator
└── Support/
├── TableListRequestFactory.php ← Admin\Support — parser list (page/per_page/sort/filter)
└── Forms/
├── FormRequestHandler.php ← Admin\Support\Forms — POST + CSRF + validate + persist
└── FormFieldRenderer.php ← Admin\Support\Forms — HTML renderer (deleguje Shared\Html\Html)
```
Decyzja: **brak BaseController** — Phase 7+ kontrolery będą POJOs z DI w konstruktorze (jak shopPRO `BannerController(BannerRepository, LanguagesRepository)`).
Następne: `Admin\` controllers (Fazy 713), `Frontend\` namespace (Fazy 1416).
---
## Katalogi