isocode_utils.php
Ce fichier contient la fonction générique de lecture d'un fichier ou d'une page HTML source en un tableau d'éléments prêt à être inséré dans une table de la base de données.
Dans les fonctions du package, les conventions suivantes sont utilisées:
- source : désigne le fichier ou la page HTML à partir duquel la table des codes ISO est remplie.
- contenu : le contenu de la source sous quelque forme que ce soit.
- élément : un élément du contenu destiné à devenir un enregistrement de la table concernée. Un élément est un tableau de couples (nom, valeur).
- éléments : liste des éléments constitutifs du contenu de la source.
- enregistrement : un tableau de couples (champ, valeur) pour un sous-ensemble des champs d'une table.
- enregistrements : la liste des enregistrements à insérer dans la table concernée.
- titre : le libellé de la donnée dans la source (par ex, le titre d'une colonne dans un fichier CSV).
Table of Contents
- _EXTRAIRE_MULTI = '@<multi>(.*?)</multi>@sS'
- Restaure cette constante à partir de SPIP 4.2.
- _ISOCODE_COEFF_MAX_DISTANT = 5
- _ISOCODE_GEOMETRIE_MAX_INSERT = 50
- lire_source() : array<string|int, mixed>
- Constitue, à partir, d'un fichier CSV ou XML ou d'une page HTML au format texte, un tableau des éléments prêt à être inséré dans une table de la base de données.
- obtenir_cle_primaire() : array<string|int, mixed>
- Renvoie la clé primaire d'une table spip sous la forme d'une liste de champs.
- initialiser_enregistrement() : array<string|int, mixed>
- Initialise un élément d'une table donnée avec les valeurs par défaut configurées dans la déclaration de la base ou avec une valeur prédéfinie par type.
- inserer_enregistrements() : bool
- Insère une liste d'enregistrements dans une table donnée.
- extraire_contenu_source() : array<string|int, mixed>
- Extrait le contenu d'une page HTML, les données d'une API REST ou le contenu décodé d'un fichier.
- extraire_element() : array<string|int, mixed>
- Extraire un enregistrement de l'élément unitaire de contenu provenant de la source.
- completer_element() : array<string|int, mixed>
- Complète un enregistrement d'une table en cours de traitement avec les valeurs des champs statiques configurés.
- sha_identique() : bool
- Compare le sha passé en argument pour la table concernée avec le sha stocké dans la meta pour cette même table.
- compiler_champs() : array<string|int, mixed>
- Compile les différents types de champs de base (basic_fields, basic_ext_fields et static_fields) dans un même tableau.
- consigner_chargement() : void
- Consigne les informations de chargement dans la meta adéquate.
- deconsigner_chargement() : void
- Supprime la consignation d'un chargement donné.
- decoder_xml_json() : array<string|int, mixed>
- Décode un contenu XML ou JSON pour en obtenir un tableau.
- configuration_lire() : mixed
- Renvoie la configuration d'un service.
- completer_traduction() : string
- Complète un texte sous forme de balise multi avec une liste de traductions.
- completer_profondeur() : array<string|int, mixed>
- Compléter une liste d'enregistrements d'une table donnée par les données de profondeur en suivant la configuration idoine du service.
Constants
_EXTRAIRE_MULTI
Restaure cette constante à partir de SPIP 4.2.
public
mixed
_EXTRAIRE_MULTI
= '@<multi>(.*?)</multi>@sS'
_ISOCODE_COEFF_MAX_DISTANT
public
mixed
_ISOCODE_COEFF_MAX_DISTANT
= 5
_ISOCODE_GEOMETRIE_MAX_INSERT
public
mixed
_ISOCODE_GEOMETRIE_MAX_INSERT
= 50
Functions
lire_source()
Constitue, à partir, d'un fichier CSV ou XML ou d'une page HTML au format texte, un tableau des éléments prêt à être inséré dans une table de la base de données.
lire_source(string $type, string $service, string $table) : array<string|int, mixed>
La fonction utilise le service et le nom de table pour récupérer la configuration permettant l'analyse du fichier et sa traduction en éléments de la table (délimiteur ou regexp, nom des colonnes...). Il est possible, pour chaque élément ou pour l'ensemble d'appliquer une fonction spécifique à la table qui complète l'élément.
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : string
-
Nom de la table sans le préfixe spip_.
Tags
Return values
array<string|int, mixed> —Tableau à trois éléments:
- index 0 : la liste des éléments à enregistrer dans la table concernée
- index 1 : le sha256 de la source des éléments de la table
- index 2 : indicateur de sha identique
- index 3 : l'identifiant du groupe de nomenclatures si il existe, sinon chaine vide
obtenir_cle_primaire()
Renvoie la clé primaire d'une table spip sous la forme d'une liste de champs.
obtenir_cle_primaire(string $table) : array<string|int, mixed>
Parameters
- $table : string
-
Nom de la table sans le préfixe spip_.
Return values
array<string|int, mixed> —Tableau des champs de la clé primaire.
initialiser_enregistrement()
Initialise un élément d'une table donnée avec les valeurs par défaut configurées dans la déclaration de la base ou avec une valeur prédéfinie par type.
initialiser_enregistrement(string $table, array<string|int, mixed> $config_source[, mixed $config_unused = [] ]) : array<string|int, mixed>
Parameters
- $table : string
-
Nom de la table à laquelle l'enregistrement appartient (sans le préfixe spip_).
- $config_source : array<string|int, mixed>
-
Configuration de la correspondance entre le nom de la donnée dans la source et celui du champ dans la table.
- $config_unused : mixed = []
-
Liste des champs de la source non utilisés dans la table destination.
Return values
array<string|int, mixed> —Enregistrement de la table initialisé.
inserer_enregistrements()
Insère une liste d'enregistrements dans une table donnée.
inserer_enregistrements(string $type, string $table, array<string|int, mixed> $enregistrements) : bool
Si la table concerne les types geometrie
et infra_subdivision
, on gère l'insertion par paquets car ceux§ci peuvent
être conséquents.
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $table : string
-
Nom de la table sans le préfixe spip_.
- $enregistrements : array<string|int, mixed>
-
Liste des enregistrements prêts à être insérés dans la table concernée.
Return values
bool —true
si tout s'est bien passé, false
sinon.
extraire_contenu_source()
Extrait le contenu d'une page HTML, les données d'une API REST ou le contenu décodé d'un fichier.
extraire_contenu_source(string $type, string $service, string $table, array<string|int, mixed> $config) : array<string|int, mixed>
Le contenu est renvoyé sous la forme d'une liste d'éléments qui seront traités par la suite pour être insérés dans la table concernée.
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : string
-
Nom de la table sans le préfixe spip_.
- $config : array<string|int, mixed>
-
Configuration de la méthode de lecture de la source pour la table concernée.
Tags
Return values
array<string|int, mixed> —Tableau à 3 éléments : le contenu, les titres de colonnes (CSV) et le sha.
extraire_element()
Extraire un enregistrement de l'élément unitaire de contenu provenant de la source.
extraire_element(array<string|int, mixed>|string $contenu, array<string|int, mixed> $titres, array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
- $contenu : array<string|int, mixed>|string
-
Elément unitaire de la source en cours de traitement.
- $titres : array<string|int, mixed>
-
Liste des titres de colonne pour une source CSV.
- $config : array<string|int, mixed>
-
Configuration du service.
Return values
array<string|int, mixed> —Tableau de données représentant la part extraite de la source d'un enregistrement de la table en cours de peuplement.
completer_element()
Complète un enregistrement d'une table en cours de traitement avec les valeurs des champs statiques configurés.
completer_element(string $type, string $service, string $table, array<string|int, mixed> $config, array<string|int, mixed> $element) : array<string|int, mixed>
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : string
-
Nom de la table sans le préfixe spip_.
- $config : array<string|int, mixed>
-
Configuration du service.
- $element : array<string|int, mixed>
-
Enregistrement de la table rempli avec la source uniquement.
Return values
array<string|int, mixed> —L'enregistrement complété.
sha_identique()
Compare le sha passé en argument pour la table concernée avec le sha stocké dans la meta pour cette même table.
sha_identique(string $sha, string $table) : bool
Parameters
- $sha : string
-
SHA à comparer à celui de la table.
- $table : string
-
Nom de la table sans préfixe
spip_
dont il faut comparer le sha stocké dans sa meta de chargement.
Return values
bool —true
si le sha passé en argument est identique au sha stocké pour la table choisie, false
sinon.
compiler_champs()
Compile les différents types de champs de base (basic_fields, basic_ext_fields et static_fields) dans un même tableau.
compiler_champs(array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
- $config : array<string|int, mixed>
-
Configuration du service.
Return values
array<string|int, mixed> —Tableau de tous les champs
consigner_chargement()
Consigne les informations de chargement dans la meta adéquate.
consigner_chargement(array<string|int, mixed> $meta, string $type, string $service, string $table) : void
Parameters
- $meta : array<string|int, mixed>
-
Tableau des données de chargement à consigner.
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : string
-
Nom de la table sans le préfixe spip_.
Return values
void —deconsigner_chargement()
Supprime la consignation d'un chargement donné.
deconsigner_chargement(string $type, string $service, string $table) : void
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : string
-
Nom de la table sans le préfixe spip_.
Return values
void —decoder_xml_json()
Décode un contenu XML ou JSON pour en obtenir un tableau.
decoder_xml_json(string $xml_json, array<string|int, mixed> $config) : array<string|int, mixed>
Parameters
- $xml_json : string
-
Chaine XML ou JSON à décoder.
- $config : array<string|int, mixed>
-
Configuration du service.
Tags
Return values
array<string|int, mixed> —Tableau résultant du décodage.
configuration_lire()
Renvoie la configuration d'un service.
configuration_lire(string $type, string $service[, null|string $table = '' ][, null|string $variable = '' ][, null|mixed $defaut = [] ]) : mixed
Parameters
- $type : string
-
Type de service. Prend les valeurs
nomenclature
,infra_subdivision
ougeometrie
. - $service : string
-
Identifiant du service.
- $table : null|string = ''
-
Nom de la table sans le préfixe spip_.
- $variable : null|string = ''
-
Nom de la variable ou vide si on veut toute la configuration.
- $defaut : null|mixed = []
-
Valeur par défaut si la variable demandée vaut
null
.
Return values
mixed —La configuration du service ou une variable donnée.
completer_traduction()
Complète un texte sous forme de balise multi avec une liste de traductions.
completer_traduction(string $multi_in, array<string|int, mixed> $traductions) : string
Les nouvelles traductions, si elles sont non vides, sont soit ajoutées, soit écrasent la traduction courante.
Parameters
- $multi_in : string
-
Chaine au format
<multi>
. - $traductions : array<string|int, mixed>
-
Tableau des traductions à ajouter (format [langue] = texte).
Return values
string —Chaine complétée au format <multi>
.
completer_profondeur()
Compléter une liste d'enregistrements d'une table donnée par les données de profondeur en suivant la configuration idoine du service.
completer_profondeur(array<string|int, mixed> $enregistrements, array<string|int, mixed> $config_profondeur) : array<string|int, mixed>
Parameters
- $enregistrements : array<string|int, mixed>
-
Liste des enregistrements déjà remplis à compléter.
- $config_profondeur : array<string|int, mixed>
-
Configuration de la profondeur
Return values
array<string|int, mixed> —Liste des enregistrements complétés.