added files with prompts
This commit is contained in:
63
docs/prompts/step02.md
Normal file
63
docs/prompts/step02.md
Normal file
@ -0,0 +1,63 @@
|
||||
# Krok 02 - Core Data Services (Úložisko)
|
||||
|
||||
## Kontext projektu
|
||||
WebWizard ukladá všetky dáta (používatelia, projekty, súhlasy) do JSON súborov v priečinku `data/`. Je potrebné mať jednotnú službu, ktorá bude tieto operácie bezpečne vykonávať.
|
||||
|
||||
## Pred implementáciou si preštuduj
|
||||
- `docs/architecture.md` - Sekcia 4 (Adresárová štruktúra) a 5 (Dátové súbory).
|
||||
- `docs/prompts/step01.md` - Predpokladá sa vytvorená štruktúra.
|
||||
|
||||
## Cieľ
|
||||
Implementovať triedu `FileStorage` v PHP, ktorá bude slúžiť ako hlavné rozhranie pre prácu s JSON súbormi v rámci systému.
|
||||
|
||||
## Požadované zmeny
|
||||
1. Vytvorenie triedy `App\Services\FileStorage` v `src/Services/FileStorage.php`.
|
||||
2. Implementácia metód pre:
|
||||
- `put(string $path, array $data): bool` - Uloží pole ako JSON.
|
||||
- `get(string $path): ?array` - Načíta JSON a vráti pole.
|
||||
- `exists(string $path): bool` - Overí existenciu súboru.
|
||||
- `delete(string $path): bool` - Vymaže súbor.
|
||||
3. Pridanie ochrany proti "path traversal" (napr. použitie `realpath` alebo sanitizácia cesty, aby sa operácie obmedzili na priečinok `data/`).
|
||||
|
||||
## Implementačné pravidlá
|
||||
- Používaj `json_encode` s `JSON_PRETTY_PRINT` pre lepšiu čitateľnosť súborov.
|
||||
- Zabezpeč ošetrenie chýb pri čítaní/zápise (napr. neexistujúci súbor, neplatný JSON).
|
||||
- Trieda musí byť v namespace `App\Services`.
|
||||
|
||||
## Súbory ktoré je potrebné vytvoriť
|
||||
- `src/Services/FileStorage.php`
|
||||
|
||||
## Súbory ktoré je potrebné upraviť
|
||||
Žiadne.
|
||||
|
||||
## API a dátové štruktúry
|
||||
Metódy triedy `FileStorage` pracujú s asociatívnymi poľami PHP.
|
||||
|
||||
## Frontend požiadavky
|
||||
Nerelevantné.
|
||||
|
||||
## Backend požiadavky
|
||||
- PHP 8.2.
|
||||
- Prístupové práva na zápis do `data/`.
|
||||
|
||||
## Testovací scenár
|
||||
1. Vytvor testovací skript, ktorý vytvorí inštanciu `FileStorage`.
|
||||
2. Skús uložiť pole `['test' => 123]` do `users/test.json`.
|
||||
3. Over, či súbor existuje a obsahuje správny JSON.
|
||||
4. Skús načítať dáta zo súboru.
|
||||
5. Skús zadať cestu s `../` a over, či služba vyhodí výnimku alebo chybu (path traversal protection).
|
||||
|
||||
## Definition of Done
|
||||
- Trieda `FileStorage` je funkčná a otestovaná.
|
||||
- Ukladanie a načítavanie JSON dát funguje bezpečne.
|
||||
- Path traversal ochrana je implementovaná.
|
||||
|
||||
## Obmedzenia
|
||||
- Nepoužívaj žiadnu externú DB knižnicu.
|
||||
- Všetky cesty musia byť relatívne k base path projektu alebo striktne v `data/`.
|
||||
|
||||
## Výstup
|
||||
- zoznam vytvorených súborov
|
||||
- zoznam upravených súborov
|
||||
- stručné zhrnutie vykonaných zmien
|
||||
- prípadné otvorené problémy
|
||||
Reference in New Issue
Block a user