Un peu de contexte

Avec mon grand frère Quentin, nous faisons souvent des vols sur le simulateur Microsoft Flight Simulator.
Ce jeu est un simulateur de vol très réaliste qui permet de piloter différents types d’avions, comme par exemple l’Airbus A320, que nous aimons particulièrement piloter.
Sur ce simulateur, il est possible de voler en réseau, notamment via le réseau IVAO.
Lorsque nous sommes connectés à ce réseau et que nous décollons ou atterrissons dans des aéroports, nous pouvons être contrôlés par d’autres joueurs qui jouent le rôle de contrôleurs aériens.
Ces derniers occupent des postes tels que la tour de contrôle ou le service d’approche de l’aéroport, afin de gérer le trafic et d’éviter les collisions, exactement comme dans la réalité.
À quoi sert l’application ?
L’application permet aux joueurs du réseau IVAO de savoir si un contrôleur est actuellement connecté sur l’aéroport saisi par l’utilisateur.
Si aucun contrôleur n’est présent, l’aéroport est indiqué comme déconnecté.
En revanche, si un contrôleur est connecté, l’application affiche l’état connecté, ainsi que l’ATIS de l’aéroport — c’est-à-dire les informations réelles (météo, pistes en service, etc.) et la lettre d’information courante que le pilote doit communiquer au contrôleur pour confirmer qu’il dispose bien des dernières données à bord.
Comment fonctionne l’application ?
Lorsque l’utilisateur saisit le code ICAO d’un aéroport, l’application commence par vérifier si le fichier JSON contenant les informations du réseau date de moins de cinq minutes.
- Si oui, elle lit (parse) le fichier déjà enregistré.
- Si non, elle télécharge une version plus récente avant de la traiter.
Une fois le fichier prêt, l’application extrait les données et les place dans un tableau PHP.
Elle vérifie ensuite si l’aéroport est actuellement contrôlé :
- Si le code ICAO n’apparaît pas dans la liste des aéroports connectés, l’application affiche simplement « Déconnecté » et s’arrête là.
- Si l’aéroport est contrôlé, elle récupère les informations ATIS dans le bon emplacement du fichier JSON.
Enfin, l’application affiche :
- l’état de connexion de l’aéroport,
- les données de l’ATIS,
- ainsi que la date et l’heure de la dernière mise à jour.