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>
82 lines
3.7 KiB
Markdown
82 lines
3.7 KiB
Markdown
# Project State
|
|
|
|
## Project Reference
|
|
|
|
See: .paul/PROJECT.md (updated 2026-04-26)
|
|
|
|
**Core value:** Autorski system CMS umożliwiający zarządzanie treściami i stronami internetowymi.
|
|
**Current focus:** Phase 6 — Plan 06-01 (Forms infrastructure) created, awaiting approval
|
|
|
|
## Current Position
|
|
|
|
Milestone: v0.1 Refaktoryzacja
|
|
Phase: 6 of 19 (Admin: Base Infrastructure) — Complete
|
|
Plan: All plans complete (06-01, 06-02)
|
|
Status: Phase 6 closed — ready to plan Phase 7
|
|
Last activity: 2026-04-30 — UNIFY 06-02 closed Phase 6 (Admin Base Infrastructure shipped)
|
|
|
|
Progress:
|
|
- Milestone: [▓▓▓▓░░░░░░] 32% (6 of 19 phases)
|
|
- Phase 6: [▓▓▓▓▓▓▓▓▓▓] 100% complete
|
|
|
|
## Loop Position
|
|
|
|
Current loop state:
|
|
```
|
|
PLAN ──▶ APPLY ──▶ UNIFY
|
|
✓ ✓ ✓ [Phase 6 complete — ready for Phase 7 PLAN]
|
|
```
|
|
|
|
## Performance Metrics
|
|
|
|
**Velocity:**
|
|
- Total plans completed: 7
|
|
- Total execution time: ~39min
|
|
|
|
**By Phase:**
|
|
|
|
| Phase | Plans | Total Time | Avg/Plan |
|
|
|-------|-------|------------|----------|
|
|
| 01-infrastructure | 1/1 | ~10min | ~10min |
|
|
| 02-shared-email-security | 1/1 | ~8min | ~8min |
|
|
| 03-domain-scontainers-banners | 1/1 | ~2min | ~2min |
|
|
| 04-domain-authors-newsletter | 1/1 | ~2min | ~2min |
|
|
| 04h-hotfix-https-updates | 1/1 | ~90min | ~90min |
|
|
| 05-domain-seoadditional-cron-releases | 1/1 | ~5min | ~5min |
|
|
| 06-admin-base | 2/2 | ~12min | ~6min |
|
|
|
|
## Accumulated Context
|
|
|
|
### Decisions
|
|
- 2026-04-30: Phase 6/06-02 — Brak `BaseController`. Phase 7+ kontrolery będą POJOs z DI w konstruktorze (jak shopPRO BannerController). Powtórzony kod (np. `requirePrivilege()`) zostanie wyabstrahowany dopiero gdy zaobserwujemy realny pattern w 2-3 kontrolerach.
|
|
- 2026-04-30: Phase 6/06-02 — Filename `TableListRequestFactory.php` (PSR-4 czyste) zamiast shopPRO `class.TableListRequestFactory.php` (lamie PSR-4). Naprawia bug shopPRO.
|
|
- 2026-04-30: Phase 6/06-01 — composer.json PSR-4 mapuje `Admin\` → `autoload/admin/` (lowercase folder), bo Windows fs case-insensitive zlał `admin/` legacy z planowanym `Admin/`. Cross-platform safe na Linux. Bonus: `Frontend\` → `autoload/front/` (preventive dla Phase 14+).
|
|
- 2026-04-30: Phase 6/06-01 — Form VMs i FormValidator skopiowane 1:1 z shopPRO; jedyne zmiany to namespace `admin\` → `Admin\` (PascalCase per decyzja użytkownika). PROJECT.md mylnie deklarował, że Form Edit System już istnieje — w cmsPRO go nie było.
|
|
- 2026-04-26: Phase 5 — UpdateRepository przyjmuje ($db, $settings) w konstruktorze — settings potrzebny do update_key i wersji.
|
|
- 2026-04-26: Phase 5 — Cron helper methods (get_site_meta_*) stały się private w CronRepository — były wywoływane tylko wewnętrznie.
|
|
- 2026-04-26: Phase 5 — class.Cron.php zachowuje brak namespace (klasa globalna) — cron.php używa bezpośrednio.
|
|
- 2026-04-26: Hotfix 04h — full-patch wszystkich 121 paczek (zamiast minimal-patch). Powód: paczki nadpisują class.S.php w różnych wersjach, częściowy patch ryzykuje regresję podczas chain-update.
|
|
- Centralny autoloader zamiast duplikatów
|
|
- CsrfToken: single token per session (shopPRO pattern)
|
|
- Email: PHPMailer require via __DIR__ absolute paths
|
|
- Shared layer kompletny: Cache, Helpers, Html, Image, Tpl, Email, Security
|
|
- Wrapper delegation: factory creates new repo per call (no singleton)
|
|
- Front repos: $lang[0] passed explicitly, repos don't use globals
|
|
- Newsletter: globals ($settings, $lang) passed as explicit params to repo methods
|
|
|
|
### Deferred Issues
|
|
None.
|
|
|
|
### Blockers/Concerns
|
|
None.
|
|
|
|
## Session Continuity
|
|
|
|
Last session: 2026-04-30
|
|
Stopped at: Phase 6 complete (loop closed)
|
|
Next action: /paul:plan dla Phase 7 (Admin: Articles + ArticlesArchive)
|
|
Resume file: .paul/ROADMAP.md
|
|
|
|
---
|
|
*STATE.md — Updated after every significant action*
|