getDatabaseConfig()); $db = Database::getInstance(); // 1. Vérifier si la table existe $initializer = new DepartementContoursInitializer($db); $tableExists = $initializer->tableExists(); echo "1. État actuel:\n"; echo " - Table x_departements_contours existe : " . ($tableExists ? "OUI" : "NON") . "\n\n"; if ($tableExists) { // Compter les enregistrements $stmt = $db->query("SELECT COUNT(*) as count FROM x_departements_contours"); $count = $stmt->fetch()['count']; echo " - Nombre de départements : $count\n"; // Lister quelques départements $stmt = $db->query("SELECT code_dept, nom_dept FROM x_departements_contours ORDER BY code_dept LIMIT 10"); $depts = $stmt->fetchAll(); echo " - Premiers départements :\n"; foreach ($depts as $dept) { echo " * {$dept['code_dept']} - {$dept['nom_dept']}\n"; } echo "\n"; } // 2. Tester la méthode runIfNeeded echo "2. Test de runIfNeeded():\n"; // Test avec un utilisateur non-admin echo " - Test avec utilisateur 'test' : "; $result = DepartementContoursInitializer::runIfNeeded($db, 'test'); echo ($result === null ? "Ignoré (OK)" : "Exécuté (ERREUR)") . "\n"; // Test avec d6soft mais table existante if ($tableExists) { echo " - Test avec 'd6soft' et table existante : "; $result = DepartementContoursInitializer::runIfNeeded($db, 'd6soft'); echo ($result === null ? "Ignoré (OK)" : "Exécuté (ERREUR)") . "\n"; } // 3. Test de récupération d'un département spécifique echo "\n3. Test de l'API geo.api.gouv.fr:\n"; echo " - Récupération du département 22 (Côtes-d'Armor)...\n"; $url = "https://geo.api.gouv.fr/departements/22?fields=nom,contour"; $context = stream_context_create([ 'http' => [ 'timeout' => 10, 'header' => "User-Agent: Geosector/1.0\r\n" ] ]); $response = @file_get_contents($url, false, $context); if ($response !== false) { $data = json_decode($response, true); echo " ✓ Réponse reçue\n"; echo " - Nom : " . ($data['nom'] ?? 'Non disponible') . "\n"; echo " - Contour : " . (isset($data['contour']) ? "Disponible" : "Non disponible") . "\n"; if (isset($data['contour']['coordinates'])) { $coords = $data['contour']['coordinates']; $pointCount = 0; // Compter les points selon la structure if (isset($coords[0][0]) && is_numeric($coords[0][0])) { $pointCount = count($coords); } elseif (isset($coords[0]) && is_array($coords[0])) { $pointCount = count($coords[0]); } echo " - Nombre de points : $pointCount\n"; } } else { echo " ✗ Erreur lors de la récupération\n"; } // 4. Si la table n'existe pas, proposer de l'initialiser if (!$tableExists) { echo "\n4. La table n'existe pas.\n"; echo " Pour l'initialiser :\n"; echo " - Connectez-vous avec l'utilisateur 'd6soft'\n"; echo " - OU exécutez : php scripts/init_departements_contours.php\n"; } } catch (Exception $e) { echo "✗ Erreur : " . $e->getMessage() . "\n"; echo "Trace:\n" . $e->getTraceAsString() . "\n"; } echo "\n";