getRepository(Log::class)->findAll(); if(empty($data)){ echo json_encode(['success' => false]); } else{ $view = '

Table ' . TABLE_PREFIX . 'log de la BDD

'; foreach($data as $entry){ $view .= ''; } $view .= '
date et heure (Greenwich) connexion réussie
' . $entry->getFormatedDate() . ' ' . ($entry->getSuccess() ? 'oui' : 'non') . '
'; echo json_encode(['success' => true, 'view' => $view]); } die; } static public function eraseLogs(EntityManager $entityManager): void { try{ $table = $entityManager->getClassMetadata(Log::class)->getTableName(); $entityManager->getConnection()->executeStatement("TRUNCATE TABLE {$table}"); // SQL donné à DBAL echo json_encode(['success' => true]); } catch(Exception $e){ echo json_encode(['success' => false]); } die; } static public function getLastDump(EntityManager $entityManager): void { try{ $file_path = Backup::mySQLdump($entityManager); header('Content-Type: application/octet-stream'); // signifie fichier quelconque, du binaire quoi! header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); // pour provoquer un téléchargement et non pour afficher header('Content-Length: ' . filesize($file_path)); // peut servir côté client (barre de progression...) readfile($file_path); die; } // exeptions lancées dans Backup::mySQLdump catch(ProcessFailedException $e){ // pas d'info $e pour le client header('Location: ' . new URL(['page' => 'maintenance', 'error' => '500'])); die; } die; } }