Fix: Corriger le type PDO dans StripeService et retirer getConnection()

This commit is contained in:
2025-09-01 15:23:48 +02:00
parent f597c9aeb5
commit a548ef8890
545 changed files with 189339 additions and 130108 deletions

View File

@@ -0,0 +1,99 @@
<?php
declare(strict_types=1);
namespace App\Core;
use Database;
use Session;
use Response;
use Request;
use PDO;
/**
* Classe de base pour tous les controllers
* Fournit des méthodes communes pour l'authentification et les réponses
*/
abstract class Controller {
protected PDO $db;
public function __construct() {
$this->db = Database::getInstance();
}
/**
* Vérifier que l'utilisateur est authentifié
*/
protected function requireAuth(): void {
if (!Session::isAuthenticated()) {
$this->sendError('Non authentifié', 401);
exit;
}
}
/**
* Vérifier que l'utilisateur a le rôle minimum requis
* @param int $minRole Rôle minimum requis (1=membre, 2=admin amicale, 3=super admin)
*/
protected function requireRole(int $minRole): void {
$this->requireAuth();
$userRole = Session::getRole();
if ($userRole < $minRole) {
$this->sendError('Droits insuffisants', 403);
exit;
}
}
/**
* Récupérer les données JSON de la requête
*/
protected function getJsonInput(): array {
return Request::getJson();
}
/**
* Envoyer une réponse de succès
*/
protected function sendSuccess($data = null, int $code = 200): void {
if ($data === null) {
Response::json(['status' => 'success'], $code);
} else {
Response::json($data, $code);
}
}
/**
* Envoyer une réponse d'erreur
*/
protected function sendError(string $message, int $code = 500): void {
Response::json([
'status' => 'error',
'message' => $message
], $code);
}
/**
* Valider qu'un tableau contient les clés requises
*/
protected function validateRequired(array $data, array $requiredFields): bool {
foreach ($requiredFields as $field) {
if (!isset($data[$field]) || $data[$field] === '') {
$this->sendError("Le champ '$field' est requis", 400);
return false;
}
}
return true;
}
/**
* Nettoyer et valider un ID
*/
protected function validateId($id): ?int {
if (!is_numeric($id) || $id <= 0) {
$this->sendError('ID invalide', 400);
return null;
}
return (int) $id;
}
}