phpDocumentor

index.php

serveur de carte 7z - ShomGTV4

Le serveur expose les cartes disponibles sous la forme d'archives 7z ainsi que le catalogue mapcat.yaml selon l'API définie ci-dessous.

La variable d'environnement SHOMGT3_PORTFOLIO_PATH est utilisée pour définir le portefeuille.

api: /: page d'accueil utilisée pour proposer des URL de tests /api: retourne la description de l'api /clientIpAddress: retourne l'adresse IP du client /cat.json: retourne mapcat.json /maps.json: liste en JSON l'ensemble des cartes ayant été disponibles indexées par leur numéro et avec les infos suivantes si la carte est valide: status: 'ok' lastVersion: identifiant de la dernière version url: URL d'accès à la carte si la carte a été retirée: status: 'obsolete' /maps/{numCarte}.7z: retourne le 7z de la carte dans sa dernière version

Utilisation du code Http de retour pour gérer les erreurs:

  • 200 - Ok - il existe bien un document et le voici
  • 400 - Bad Request - requête incorrecte
  • 401 - Unauthorized - authentification nécessaire
  • 404 - Not Found - le document demandé n'a pas été trouvé

Ce script nécessite que :

  • les cartes 7z soient stockées dans le sous-répertoire current du répertoire défini par la var d'env. SHOMGT3_INCOMING_PATH
  • à chaque carte 7z soit associé un fichier .md.json contenant en JSON la propriété 'version' indiquant la version de la carte.
  • les cartes retirées correspondent à un fichier {num}.md.json contenant en JSON la propriété 'status' contenant la valeur 'obsolete' journal: |
  • 27/8/2023:
    • envoi du MapCat en base et non en fichier
  • 19/8/2023:
    • ajout d'un mécanisme de détection pour savoir si le client du serveur est ou non sur la même machine
      • si le client est sur la même machine alors pas d'autre contrôle d'accès
      • pour cette détection le serveur s'appelle lui-même sur l'API /clientIpAddress
  • 3-4/8/2023:
    • passage en ShomGT4
    • sgupdt en version 4 fait une requête avec le paramètre version=4
    • pour être compatible avec sgupdt version 3, on garde un traitement spécifique quand le paramètre version=1
      • qui consiste à fournir comme version des cartes spéciales la chaine 'undefined'
  • 25/7/2023:
    • amélioration du code en le structurant avec un switch()
    • réintroduction de l'exclusion de cartes en V0
    • possibilité de limiter les cartes pour tests
  • 19/6/2023:
    • prise en compte des cartes retirées (status obsolete)
  • 11/6/2023:
    • nouvelle version simplifiée correspondant à la restructuration de shomgeotiff (ShomGT3.1)
  • 2/8/2022:
    • corrections indiquées par PhpStan level 6
  • 20/6/2022:
    • réécriture du calcul des versions des cartes pour
      • décomposer le calcul par livraison et ainsi accélérer le calcul global pour une nouvelle livraison
      • fusionner les fichiers conservés pour /maps.json et lastDelivery
  • 19/6/2022:
    • gestion d'une version pour /maps.json pour exclure la carte 8523 si version=0
  • 12/6/2022:
    • ajout du champ modified
  • 30/5/2022:
    • correction d'un bug
    • ajout d'un champ 'lastVersion' pour chaque carte dans le document maps.json
    • stockage temporaire de maps.json maintenant long à calculer
    • tri des répertoires de incoming pas forcément bien ordonnés
    • rempl. /map/... par /maps/...
    • suppression entrée API /map/{numCarte}/newer/{annéeEdition}c{derCorr}.7z
    • suppression entrée API /cat/{date}.json
  • 24/5/2022:
    • modification de la gestion du fichier newermap.pser car gestion buggé
    • correction d'un bug
  • 22/5/2022:
    • mise en variable d'environnement de SHOMGT3_INCOMING_PATH pour permettre des tests sur moins de cartes
  • 19/5/2022:
    • ajout gestion du contrôle d'accès et modif gestion erreurs Http
  • 18/5/2022:
    • passage des 2 entrées catalogue en JSON
    • correction de 2 bugs
  • 16/5/2022:
    • utilisation fpassthru() à la place de passthru() pour améliorer la restitution du 7z
    • ajout de logRecord()
    • correction d'un bug dans findNewerMap()
  • 15/5/2022:
    • ajout de la gestion des cartes obsolètes
    • chgt de l'API pour la carte plus récente que la version fournie
    • ajout liste des cartes, liste des versions d'ue carte, téléchargement PNG ou 7z d'une version particulière d'une carte
    • utilisation passthru() à la place de file_get_contents() pour éviter une explosion mémoire
  • 11/5/2022:
    • création

Table of Contents

Constants

EXCLUDED_MAPS_IN_V0  = ['8523']
cartes exclues du service en V0 car incompatible avec sgupdt v0.6
SPECIAL_MAPS  = ['7330', '7344', '7360', '8101', '8502', '8509', '8510', '8517', '8523']
cartes spéciales traitées spécialement en version < 4
TEST_MAPS  = []
liste limitée de cartes pour tests

Functions

logRecord()  : void
enregistrement d'un log temporaire pour aider au déverminage
sendHttpCode()  : void
Génère une erreur Http et un message utilisateur avec un content-type text ; enregistre un log avec un éventuel message sys

Constants

EXCLUDED_MAPS_IN_V0

cartes exclues du service en V0 car incompatible avec sgupdt v0.6

public mixed EXCLUDED_MAPS_IN_V0 = ['8523']

SPECIAL_MAPS

cartes spéciales traitées spécialement en version < 4

public mixed SPECIAL_MAPS = ['7330', '7344', '7360', '8101', '8502', '8509', '8510', '8517', '8523']

TEST_MAPS

liste limitée de cartes pour tests

public mixed TEST_MAPS = []

Functions

logRecord()

enregistrement d'un log temporaire pour aider au déverminage

logRecord(array<string|int, mixed> $log) : void
Parameters
$log : array<string|int, mixed>

sendHttpCode()

Génère une erreur Http et un message utilisateur avec un content-type text ; enregistre un log avec un éventuel message sys

sendHttpCode(int $httpErrorCode, string $mesUti[, string $mesSys = '' ]) : void
Parameters
$httpErrorCode : int
$mesUti : string
$mesSys : string = ''

        
On this page

Search results