Phase 2 complete (4/4 plans): - Plan 02-01: Fix dead ZPL page size condition in AllegroShipmentService - Plan 02-02: Add time-based cursor to AllegroStatusSyncService - Plan 02-03: Fix ShopproOrdersSyncService using wrong state repository - Plan 02-04: Extract CronHandlerFactory as single cron composition point Plan 02-04 specifics: - New CronHandlerFactory builds complete cron object graph - Application::maybeRunCronOnWeb() reduced from 80+ to ~20 lines - bin/cron.php reduced from 123 to 26 lines - Fixed 2 bugs: AllegroOAuthClient→AllegroTokenManager, AllegroOrderSyncStateRepository→ShopproOrderSyncStateRepository Co-Authored-By: Claude <noreply@anthropic.com>
4.9 KiB
4.9 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 02-bug-fixes | 04 | cron |
|
|
|
|
|
|
|
|
~20min | 2026-03-13T00:00:00Z | 2026-03-13T00:00:00Z |
Phase 2 Plan 04: CronHandlerFactory Summary
Wydzielono CronHandlerFactory jako jedyne miejsce budujące graf obiektów crona; naprawiono 2 błędy zależności w bin/cron.php (AllegroOAuthClient→AllegroTokenManager, AllegroOrderSyncStateRepository→ShopproOrderSyncStateRepository).
Performance
| Metric | Value |
|---|---|
| Duration | ~20 min |
| Started | 2026-03-13 |
| Completed | 2026-03-13 |
| Tasks | 3 completed |
| Files modified | 3 (1 nowy, 2 zmodyfikowane) |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Jeden punkt definicji handlerów crona | Pass | CronHandlerFactory jedynym miejscem new AllegroIntegrationRepository / new ShopproIntegrationsRepository w kontekście crona |
| AC-2: Web cron działa identycznie jak przed zmianą | Pass | maybeRunCronOnWeb() wywołuje fabrykę z tymi samymi handlerami |
| AC-3: bin/cron.php używa poprawnych zależności | Pass | AllegroTokenManager zamiast AllegroOAuthClient, ShopproOrderSyncStateRepository zamiast AllegroOrderSyncStateRepository |
Accomplishments
- Nowy
CronHandlerFactory(97 linii) — kompletny graf obiektów crona w jednym miejscu Application.php: usunięto 20+ importów cron;maybeRunCronOnWeb()skrócona z 80+ do ~20 linii (3 linie fabryki zamiast ~80 linii ręcznej konstrukcji)bin/cron.php: skrócone ze 123 do 26 linii; naprawiono 2 istniejące błędy w zależnościach
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
src/Modules/Cron/CronHandlerFactory.php |
Created | Jedyne miejsce budujące graf obiektów crona |
src/Core/Application.php |
Modified | Zastąpiono 80+ linii ręcznej konstrukcji wywołaniem fabryki; usunięto 20+ zbędnych importów |
bin/cron.php |
Modified | Zastąpiono 100+ linii wywołaniem fabryki; naprawiono 2 błędy zależności |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
Factory przyjmuje PDO + integrationSecret, nie Application |
Unikanie circular dependency i nadmiernego coupling | Fabryka przenośna, testowalność wyższa |
ShopproIntegrationsRepository tworzony raz i współdzielony |
Application.php tworzył go 3x niepotrzebnie | Spójność z intencją kodu, mniejsze zużycie zasobów |
| Nie wprowadzamy DI container | Odrębny temat (CONCERNS.md [MEDIUM]) | Brak scope creep |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Auto-fixed | 0 | — |
| Scope additions | 0 | — |
| Deferred | 0 | — |
Total impact: Brak odchyleń — plan wykonany dokładnie jak napisano.
Skills
| Skill | Status | Notes |
|---|---|---|
| sonar-scanner | ✓ | ANALYSIS SUCCESSFUL — 0 nowych issues w zmienionych plikach |
| /code-review | ○ | gh CLI niedostępne w środowisku; brak PR (praca na main) |
Issues Encountered
| Issue | Resolution |
|---|---|
gh CLI niedostępne — code-review niemożliwy |
Pominięto; sonar-scanner jako główna weryfikacja jakości |
SonarQube — post plan 02-04 (skan 2026-03-13)
Brak nowych issues w CronHandlerFactory.php (nowy plik). Pre-existing issues w Application.php (S1142, S1448, S4833, S2003) — niezmienione przez nasze modyfikacje.
Next Phase Readiness
Ready:
- Graf obiektów crona w jednym miejscu — gotowe do dalszej pracy z handlerami
- bin/cron.php i Application.php zsynchronizowane — brak ryzyka rozjechania zależności
Concerns:
Applicationma nadal 22 metody (S1448 pre-existing) — kandydat do podziału w przyszłości
Blockers: Brak
Phase: 02-bug-fixes, Plan: 04 Completed: 2026-03-13