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

@@ -0,0 +1,35 @@
# 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)