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:
2026-04-04 17:28:01 +02:00
parent 9b31ce0d16
commit 3325eaf44c
21 changed files with 1217 additions and 180 deletions

View File

@@ -0,0 +1,28 @@
<?php
namespace Shared\Security;
class CsrfToken
{
const SESSION_KEY = 'csrf_token';
public static function getToken()
{
if ( empty( $_SESSION[self::SESSION_KEY] ) )
$_SESSION[self::SESSION_KEY] = bin2hex( random_bytes( 32 ) );
return $_SESSION[self::SESSION_KEY];
}
public static function validate( $token )
{
if ( empty( $_SESSION[self::SESSION_KEY] ) || empty( $token ) )
return false;
return hash_equals( $_SESSION[self::SESSION_KEY], $token );
}
public static function regenerate()
{
unset( $_SESSION[self::SESSION_KEY] );
}
}