average !== null ? (string) $stats->average : 'N/A'], separator: ';'); fputcsv($handle, ['Taux de réussite', $stats->successRate . '%'], separator: ';'); fputcsv($handle, [], separator: ';'); fputcsv($handle, ['Élève', 'Moyenne', 'En difficulté', 'Tendance'], separator: ';'); foreach ($stats->students as $student) { fputcsv($handle, [ $student->studentName, $student->average !== null ? (string) $student->average : 'N/A', $student->inDifficulty ? 'Oui' : 'Non', match ($student->trend) { 'improving' => 'Progression', 'declining' => 'Régression', default => 'Stable', }, ], separator: ';'); } rewind($handle); $csv = stream_get_contents($handle); fclose($handle); return $csv !== false ? $csv : ''; } }