Deprecated: Return type of YDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/ydata.inc.php on line 428

Deprecated: Return type of YamlDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/yamldata.inc.php on line 295
yaml pub]
Menu : html yaml json edit check reindex dump unset
* 

file

name yamldata.inc.php
title yamldata.inc.php - sous-classes YamlData et YamlDataTable pour la gestion des données
doc
journal
1/7/2018
  • YamlDataTable implémente IteratorAggregate
21/6/2018
  • ajout de la méthode shrink() pour réduire l'espace mémoire utilisé dans admin.php
9/6/2018
  • remplacement des méthodes YamlDataTable::yaml() et YamlDataTable::json() par YamlDataTable::php()
7/6/2018
  • ajout de YamlData::project()
  • définition des méthodes YamlDataTable::yaml() et YamlDataTable::json()
3/6/2018
  • amélioration sérialisation
1/6/2018
  • mise en place minimum de la sélection en ajoutant une méthode extract() à YamlDataTable et en l'appellant depuis YamlDoc::sextract
30-31/5/2018
  • création

classes

YamlData

title gestion de données structurées en tables, remplacée par YData
doc

Pour gérer efficacement des tables assez volumineuses, il est préférable d'utiliser des clés d'accès aux enregistrements plutôt qu'un numéro d'ordre comme prévu dans le YamlDoc de base.
La classe YamlData permet de définir des documents contenant une ou plusieurs tables d'enregistrements accessibles au travers d'une clé éventuellement composite.
La clé est utilisée dans la structure Php ; pour une clé composite, plusieurs clés successives Php sont utilisées. Un document YamlData doit définir à la racine un champ yamlClass avec la valeur YamlData.
Il peut alors:

  • soit contenir une seule table stockée en Yaml dans le champ data
  • soit contenir une liste de tables stockée dans une structure Yaml

    tables:  
      {nomtable}:  
        title: titre de la table  
        yamlSchema: schema de la table  
        data: enregistrements contenus dans la table  
    

Dans les 2 cas un YamlSchema pour chaque table est recommandé et nécessaire si une clé composite est utilisée. Le YamlSchema doit contenir un champ KEYS avec un sous champ ROOT et un sous-sous champ data contenant la liste des clés sous la forme d'une chaine avec un nom de champ.
De plus une version serialisée du doc est enregistrée pour accélérer la lecture des gros documents.