refactor: centralny autoloader, Shared\Email i Shared\Security
- 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>
This commit is contained in:
@@ -12,10 +12,9 @@
|
||||
| `cron.php` | Zadania cykliczne (newsletter) |
|
||||
| `download.php` | Chronione pobieranie plików |
|
||||
|
||||
Każdy punkt wejścia ładuje dwa autoloadery (PSR-4 + legacy):
|
||||
Każdy punkt wejścia ładuje centralny autoloader (hybrydowy PSR-4 + legacy):
|
||||
```php
|
||||
spl_autoload_register(function($class) { /* PSR-4: src/ → autoload/ */ });
|
||||
spl_autoload_register(function($class) { /* legacy: class.{Name}.php */ });
|
||||
require_once __DIR__ . '/autoload/autoloader.php';
|
||||
```
|
||||
|
||||
---
|
||||
@@ -40,36 +39,40 @@ Projekt migruje stopniowo do architektury DDD. Stare klasy stają się
|
||||
cienkimi wrapperami delegującymi do nowych klas w `Shared\` i `Domain\`.
|
||||
|
||||
### Faza 0 ✓ — Autoloader PSR-4
|
||||
Dodany do wszystkich 6 punktów wejścia. Mapowanie: namespace → `autoload/`.
|
||||
Centralny autoloader w `autoload/autoloader.php` (hybrydowy: PSR-4 + legacy class.*.php).
|
||||
Wszystkie 7 punktów wejścia używają jednego pliku. composer.json z PSR-4 mapowaniem:
|
||||
Domain\, Shared\, Admin\, Frontend\ → autoload/.
|
||||
|
||||
### Faza 1 ✓ — Shared utilities (`autoload/Shared/`)
|
||||
|
||||
```
|
||||
autoload/Shared/
|
||||
├── Cache/CacheHandler.php ← \Shared\Cache\CacheHandler
|
||||
├── Email/ ← \Shared\Email\*
|
||||
├── Email/Email.php ← \Shared\Email\Email
|
||||
├── Helpers/Helpers.php ← \Shared\Helpers\Helpers
|
||||
├── Html/Html.php ← \Shared\Html\Html
|
||||
├── Image/ImageManipulator.php ← \Shared\Image\ImageManipulator
|
||||
├── Security/CsrfToken.php ← \Shared\Security\CsrfToken
|
||||
└── Tpl/Tpl.php ← \Shared\Tpl\Tpl
|
||||
```
|
||||
|
||||
Stare klasy (`class.S.php`, `class.Cache.php`, itd.) są teraz cienkimi
|
||||
wrapperami — zachowana pełna kompatybilność wsteczna.
|
||||
Helpers::send_email() → Email, Helpers::get_token()/is_token_valid() → CsrfToken.
|
||||
|
||||
### Faza 2 (w toku) - Domain Repositories (`autoload/Domain/`)
|
||||
|
||||
```
|
||||
autoload/Domain/
|
||||
|- Languages/LanguagesRepository.php <- \Domain\Languages\LanguagesRepository OK
|
||||
|- Settings/SettingsRepository.php <- \Domain\Settings\SettingsRepository OK
|
||||
|- User/UserRepository.php <- \Domain\User\UserRepository OK
|
||||
|- Pages/PagesRepository.php <- \Domain\Pages\PagesRepository OK
|
||||
|- Layouts/LayoutsRepository.php <- \Domain\Layouts\LayoutsRepository OK
|
||||
`- Articles/ArticlesRepository.php <- \Domain\Articles\ArticlesRepository OK (w toku)
|
||||
├── Languages/LanguagesRepository.php ← \Domain\Languages\LanguagesRepository ✓
|
||||
├── Settings/SettingsRepository.php ← \Domain\Settings\SettingsRepository ✓
|
||||
├── User/UserRepository.php ← \Domain\User\UserRepository ✓
|
||||
├── Pages/PagesRepository.php ← \Domain\Pages\PagesRepository ✓
|
||||
├── Layouts/LayoutsRepository.php ← \Domain\Layouts\LayoutsRepository ✓
|
||||
└── Articles/ArticlesRepository.php ← \Domain\Articles\ArticlesRepository ✓
|
||||
```
|
||||
|
||||
Nastepne: `Domain\Banners`, `Domain\Authors`, `Domain\Newsletter`, ...
|
||||
Następne: `Domain\Scontainers`, `Domain\Banners`, `Domain\Authors`, `Domain\Newsletter`, ...
|
||||
---
|
||||
|
||||
## Katalogi
|
||||
|
||||
Reference in New Issue
Block a user