- Utworzono autoload/autoloader.php (hybrydowy PSR-4 + legacy) - Zmigrowano 7 entry pointów do centralnego autoloadera - Dodano PSR-4 mapowanie w composer.json (Domain, Shared, Admin, Frontend) - Utworzono Shared\Email\Email (PHPMailer, migracja z Helpers) - Utworzono Shared\Security\CsrfToken (random_bytes + hash_equals) - Wrappery w Helpers delegują do nowych klas - Zaktualizowano docs/PROJECT_STRUCTURE.md - Inicjalizacja PAUL (.paul/) z roadmapą 19 faz refaktoryzacji Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.5 KiB
3.5 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | completed | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 02-shared-email-security | 01 | infra |
|
|
|
|
|
|
|
|
~8min | 2026-04-04 |
Phase 2 Plan 01: Shared Email + Security Summary
Shared\Email\Email z PHPMailer i Shared\Security\CsrfToken z kryptograficznie bezpiecznym tokenem, plus wrappery w Helpers.
Performance
| Metric | Value |
|---|---|
| Duration | ~8min |
| Completed | 2026-04-04 |
| Tasks | 3 completed |
| Files modified | 3 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Email class | Pass | send(), email_check(), load_by_name(), PHPMailer |
| AC-2: CsrfToken class | Pass | random_bytes(32), hash_equals(), regenerate() |
| AC-3: Wrappery w Helpers | Pass | send_email(), get_token(), is_token_valid() delegują |
Accomplishments
- Utworzono
Shared\Email\Emailz pełną obsługą PHPMailer, załączników, reply-to, regex URL fix - Utworzono
Shared\Security\CsrfTokenz kryptograficznie bezpiecznym tokenem (upgrade z sha1/mt_rand) - Wrappery w Helpers zachowują pełną kompatybilność wsteczną
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
autoload/Shared/Email/Email.php |
Created | OOP Email z PHPMailer |
autoload/Shared/Security/CsrfToken.php |
Created | CSRF token management |
autoload/Shared/Helpers/Helpers.php |
Modified | Wrappery delegujące do nowych klas |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Single token per session (CsrfToken) | Wzór shopPRO, prostsze, bezpieczniejsze | Legacy multi-token array zastąpiony |
| get_token() = regenerate() + getToken() | Zachowuje semantykę: każde wywołanie daje nowy token | Kompatybilność z kodem który zakłada jednorazowy token |
| PHPMailer require via DIR | Absolute paths, działa z każdego entry pointa | Eliminuje problem relatywnych ścieżek |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Scope additions | 1 | Minimal — Email.send() ma $replay param z cmsPRO |
Email.send() w cmsPRO ma dodatkowy parametr $replay (reply-to) którego shopPRO nie ma. Zachowano dla kompatybilności z istniejącym kodem.
Issues Encountered
None.
Next Phase Readiness
Ready:
- Shared layer kompletny (Cache, Helpers, Html, Image, Tpl, Email, Security)
- Fazy 3-5 (Domain repositories) mogą startować
Concerns:
- None
Blockers:
- None
Phase: 02-shared-email-security, Plan: 01 Completed: 2026-04-04