ver. 0.282: Banners frontend migration, Cache cleanup, Shared\Cache namespace

- Banners frontend: front\Views\Banners (new), BannerRepository +2 frontend methods,
  front\view\Site przepięty, usunięte front\factory\Banners i front\view\Banners
- Cache cleanup: eliminacja legacy class.Cache.php (file-based cache),
  13 metod front\factory przepiętych z \Cache::fetch/store na CacheHandler
- Shared\Cache namespace: CacheHandler i RedisConnection przeniesione do Shared\Cache\,
  60 odwołań CacheHandler i 12 odwołań RedisConnection przepiętych,
  usunięte backward-compat wrappery class.CacheHandler.php i class.RedisConnection.php
- Naprawione rozbieżności kluczy cache (random_products, category_name)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 21:25:50 +01:00
parent fb81c54e06
commit 285cbe5515
54 changed files with 594 additions and 346 deletions

View File

@@ -6,23 +6,27 @@ Dokumentacja struktury projektu shopPRO do szybkiego odniesienia.
### Klasy odpowiedzialne za cache
#### RedisConnection
- **Plik:** `autoload/class.RedisConnection.php`
#### RedisConnection (`Shared\Cache\RedisConnection`)
- **Plik:** `autoload/Shared/Cache/RedisConnection.php`
- **Opis:** Singleton zarządzający połączeniem z Redis
- **Metody:**
- `getInstance()` - pobiera instancję połączenia
- `getConnection()` - zwraca obiekt Redis
#### CacheHandler
- **Plik:** `autoload/class.CacheHandler.php`
#### CacheHandler (`Shared\Cache\CacheHandler`)
- **Plik:** `autoload/Shared/Cache/CacheHandler.php`
- **Opis:** Handler do obsługi cache Redis
- **Metody:**
- `get($key)` - pobiera wartość z cache
- `set($key, $value, $ttl = 86400)` - zapisuje wartość do cache
- `get($key)` - pobiera wartość z cache (zwraca zserializowany string, wymaga `unserialize()`)
- `set($key, $value, $ttl = 86400)` - zapisuje wartość do cache (serializuje wewnętrznie)
- `exists($key)` - sprawdza czy klucz istnieje
- `delete($key)` - usuwa pojedynczy klucz
- `deletePattern($pattern)` - usuwa klucze według wzorca
#### USUNIĘTA: Cache (legacy file-based)
- ~~`autoload/class.Cache.php`~~ — usunięta w ver. 0.282
- Zastąpiona przez `CacheHandler` (Redis) we wszystkich wywołaniach
#### Klasa S (pomocnicza)
- **Plik:** `autoload/class.S.php`
- **Metody cache:**
@@ -100,9 +104,11 @@ shopPRO/
│ │ ├── controls/ # Kontrolery legacy (fallback)
│ │ └── factory/ # Fabryki/helpery
│ ├── Domain/ # Repozytoria/logika domenowa
│ ├── Shared/ # Wspoldzielone narzedzia
│ │ └── Cache/ # CacheHandler, RedisConnection
│ ├── front/ # Klasy frontendu
│ │ ├── Controllers/ # Nowe kontrolery DI (Newsletter)
│ │ ├── Views/ # Nowe widoki (Newsletter, Articles, Languages)
│ │ ├── Views/ # Nowe widoki (Newsletter, Articles, Languages, Banners)
│ │ ├── controls/ # Kontrolery legacy (Site, ShopBasket, ...)
│ │ ├── view/ # Widoki legacy (Site, ...)
│ │ └── factory/ # Fabryki/helpery (fasady)
@@ -388,10 +394,24 @@ Pelna dokumentacja testow: `TESTING.md`
- Usunięta fasada `front\factory\Newsletter` — logika przeniesiona do `Domain\Newsletter\NewsletterRepository` (6 nowych metod frontendowych).
- Usunięty stary kontroler `front\controls\Newsletter` i widok `front\view\Newsletter`.
- Utworzony nowy namespace `front\Controllers\` — pierwszy frontowy kontroler z DI: `NewsletterController`.
- Utworzony nowy namespace `front\Views\` — czyste widoki statyczne: `Languages`, `Newsletter`.
- Utworzony nowy namespace `front\Views\` — czyste widoki statyczne: `Languages`, `Newsletter`, `Banners`.
- Zaktualizowany routing w `front\controls\Site::route()``getControllerFactories()` (DI) z fallbackiem na stare `front\controls\`.
- Przepięte 4 wywołania `Newsletter::get_template()` w `front\factory\ShopClient` na `NewsletterRepository::templateByName()`.
- FIX: `newsletter_unsubscribe()` — błędna składnia medoo `delete()`.
## Aktualizacja 2026-02-16 (ver. 0.281) - Banners frontend migration
- NOWE METODY w `Domain/Banner/BannerRepository.php`: `banners()`, `mainBanner()` (Redis cache, filtrowanie dat).
- NOWY: `front\Views\Banners` — czysty VIEW (renderowanie szablonow banner/).
- USUNIETA: `front\factory\Banners` — logika przeniesiona do `BannerRepository`.
- USUNIETA: `front\view\Banners` — zastapiona przez `front\Views\Banners`.
- UPDATE: `front\view\Site::show()` — przepiecie na repo + Views.
## Aktualizacja 2026-02-16 (ver. 0.282) - Cache cleanup, Shared namespace
- NOWY: `Shared\Cache\CacheHandler` + `Shared\Cache\RedisConnection` — namespace Shared.
- USUNIETA: `class.CacheHandler.php` — wrapper, 60 odwolan przepietych na `\Shared\Cache\CacheHandler`.
- USUNIETA: `class.RedisConnection.php` — wrapper, 12 odwolan przepietych na `\Shared\Cache\RedisConnection`.
- USUNIETA: `class.Cache.php` — legacy file-based cache.
- UPDATE: 6 plikow przepietych z `\Cache::fetch/store` na `CacheHandler` (ShopProduct, ShopPaymentMethod, ShopCategory, ShopTransport, ShopAttribute, DictionariesRepository).
---
*Dokument aktualizowany: 2026-02-16*