Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Hide changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
843 3897 d 20 h raphael /tags/v0.1-20130829/ misc: tagging release v0.1-20130829  
/tags/v0.1-20130829
841 3897 d 21 h raphael /trunk/services/modules/0.1/eflore/ eflore: Support des requêtes ontologies multiplexées.
Le code des ontologies communes aux référentiels (bdnt) et celui des
ontologies baseflor était à l'origine *quasi-similaire*.

Ainsi, moyennant l'application manuelle du hunk #1, le patch représentant
l'historique du passage au multiplexage pour les ontologies bdnt s'applique
à eflore:
$ svn diff -r300:HEAD services/modules/0.1/commun/Ontologies.php|patch -p4 -F3

Les ontologies eflore sont nécessaires à de nombreux endroits, à commencer
par les fiches d'eflore consultation mais aussi à d'autres webservices
(par exemple meta-donnees)

Avec ce commit il est désormais possible de multiplexer les critères:
/service:eflore:0.1/eflore/ontologies/contactType:o,contactType:p,datum:wgs84
Les valeurs sont retournées dans un tableau indexé par critère, eg:
{ "datum:wgs84": { ... }, "contactType:o": { ... } }

commits connexes: 732,733,832,836
TODO: tests phpunit
 
/trunk/services/modules/0.1/eflore/Ontologies.php
839 3898 d 12 h raphael /trunk/ revert r838 (commit problem)  
/trunk/Changelog
/trunk/scripts/modules/eflore/get-donnees-fiches-eflore.php
/trunk/scripts/modules/nvjfl/Nvjfl.php
/trunk/services/bibliotheque/ReponseHttp.php
838 3898 d 13 h raphael /trunk/ misc: ajout Changelog  
/trunk/Changelog
/trunk/scripts/modules/eflore/get-donnees-fiches-eflore.php
/trunk/scripts/modules/nvjfl/Nvjfl.php
/trunk/services/bibliotheque/ReponseHttp.php
837 3898 d 13 h raphael /trunk/services/modules/0.1/commun/ meta-données: ajout d'un cache pour les ontologies redondantes  
/trunk/services/modules/0.1/commun/MetaDonnees.php
836 3898 d 17 h raphael /trunk/services/modules/0.1/baseflor/ baseflor: Support des requêtes ontologies multiplexées.
Le code des ontologies communes aux référentiels (bdnt) et celui des
ontologies baseflor était à l'origine *quasi-similaire*.

Ainsi à l'aide d'un peu de fuzzing et quelques tweaks, le patch représentant
l'historique du passage au multiplexage pour les ontologies bdnt s'applique
à baseflor:
$ svn diff -r300:HEAD services/modules/0.1/commun/Ontologies.php|patch -p4 -F3

Un peu de contexte: les ontologies baseflor sont nécessaires:
* lors de l'affichage de l'onglet "écologie" d'eflore consultation
* plus précisément dans les graphiques
* plus précisément encore dans les légendes

Ainsi ce n'était pas moins de 94 requêtes HTTP (moyenne) qui étaient
effectuées sur le modèle suivant:
/service:eflore:0.1/baseflor/ontologies/VES:8
/service:eflore:0.1/baseflor/ontologies/VEC:6
...

Avec ce commit il est désormais possible de multiplexer les critères:
/service:eflore:0.1/baseflor/ontologies/VEL:1,VEL:2,VEL:3,VEL:4,VEL:5,VEL:6,VEL:7,VEL:8 ...
Les valeurs sont retournées dans un tableau indexé par critère, eg:
{ "VEHE:7": { ... }, "VER:7": { ... } }

Le côté client sera implémenté dans:
eflore consultation: metier/api_0.1/Graphiques.php

TODO: tests phpunit
 
/trunk/services/modules/0.1/baseflor/Ontologies.php
835 3899 d 11 h raphael /trunk/services/tests/0.1/nvjfl/ tests: oublie d'un fichier (suite r834)  
/trunk/services/tests/0.1/nvjfl/NvjflOntologiesTest.php
834 3899 d 11 h raphael /trunk/services/tests/0.1/ tests: ajout de plusieurs tests relatifs aux ontologies:
* relatifs aux ontologies bdnt (ontologies communes aux ontologies de référentiel)
* relatifs aux ontologies bdnt multiplexés (plusieurs paramètres séparés par des virgules)
* relatifs aux ontologies nvjfl multiplexées (cf r832 eflore/projet)
+ bugfix de tests existants.

==> 8 failures (api 0.1 uniquement)
 
/trunk/services/tests/0.1/commun/CommunOntologiesTest.php
/trunk/services/tests/0.1/nvjfl/NvjflNomsVernaTest.php
833 3899 d 11 h raphael /trunk/services/tests/0.1/ tests: optionnalité du passage des paramètres dans l'utilisation de l'API de test  
/trunk/services/tests/0.1/ServiceEflorePhpUnit.php
832 3899 d 11 h raphael /trunk/services/modules/0.1/nvjfl/ nom-vernaculaires: multiplexage des requêtes ontologiques amélioré [ontologie "genre" pris en compte]

Les requêtes multi-critères sont désormais utilisées pour plusieurs ontologies différentes, du moment
que le webservice distant est le même. Ainsi les performances sont augmentées significativement
lors plusieurs retour.champs appartement à un même webservice d'ontologies sont demandés.

Exemple, pour le taxon nt=1382, la langue français lg=fra et les retour.champs=conseil_emploi,genre:
(/nvjfl/noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi,genre&navigation.limite=4)

La requête d'ontologies interne est désormais:
* /nvjfl/ontologies/numStatut:1,genreNombre:11,genreNombre:10

Alors qu'auparavant elle aurait induit:
* /nvjfl/ontologies/numStatut:1 # multiplage actif, mais une seule valeur pour cette ontologie
* /nvjfl/ontologies/genreNombre:11 # ontologie différente (non-multiplexé par ailleurs)
* /nvjfl/ontologies/genreNombre:10 # idem
 
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
831 3899 d 13 h raphael /trunk/services/modules/0.1/nvjfl/ nvjfl: ontologies, 2 bugfixes
1) l'attribut _result_ontologies@nvjfl était présent dans le JSON renvoyé à cause
de l'utilisation de isset() sur une valeur de tableau existante mais NULL.
array_key_exists() devait être utilisé

2) Lorsque la recherche d'ontologies est nécessaire, mais que 1 seule l'est, le
JSON d'ontologies renvoyé n'a pas la même structure (il n'est pas indexé par critère
de requête). Ce cas n'était pas traité correctement ce qui amenait à retourner un
"conseil_emploi" NULL.
exemple d'URL: /nvjfl//noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi&navigation.limite=2
 
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
830 3899 d 17 h raphael /trunk/services/modules/0.1/commun/ aide: en cas d'erreur, ne pas générer d'E_NOTICE de variable non-existente ce qui ne pourrait qu'amplifier le problème  
/trunk/services/modules/0.1/commun/Aide.php
826 3901 d 16 h raphael /trunk/services/tests/0.1/cel/ tests: cel: ajout d'un test sur une date antérieure à 1901 (php 64 bits) associée à une image Cel  
/trunk/services/tests/0.1/cel/CelImagesTest.php
825 3901 d 16 h raphael /trunk/services/tests/0.1/baseflor/ tests: baseflor: ajout d'un test sur /baseflor/informations/bdtfx.nn:XXX/relations/catminat  
/trunk/services/tests/0.1/baseflor/InformationsBaseflorTest.php
815 3901 d 20 h raphael /trunk/services/modules/0.1/ trivial syntax error  
/trunk/services/modules/0.1/Projets.php
814 3901 d 20 h raphael /trunk/services/modules/0.1/ class-name conflict: "moissonnage" vs "moissonnnage"...  
/trunk/services/modules/0.1/Projets.php
/trunk/services/modules/0.1/moissonnage/Ontologies.php
813 3901 d 20 h raphael /trunk/services/configurations/ config: correction du répertoire de cache en -test avec "make test"  
/trunk/services/configurations/test-conf.sed
812 3901 d 20 h raphael /trunk/services/configurations/ config: suppression du sous-répertoire de cache /eflore/ dans {ref:chemin_cache}  
/trunk/services/configurations/config_baseflor.ini
/trunk/services/configurations/config_bdtxa.ini
/trunk/services/configurations/config_chorodep.ini
/trunk/services/configurations/config_eflore.ini
/trunk/services/configurations/config_moissonnage.ini
811 3904 d 12 h raphael /trunk/services/modules/0.1/ projets/tests: fix class-name conflict sur "Cartes"  
/trunk/services/modules/0.1/Projets.php
/trunk/services/modules/0.1/bdtxa/Cartes.php
/trunk/services/modules/0.1/chorodep/Cartes.php
/trunk/services/modules/0.1/eflore/Cartes.php
/trunk/services/modules/0.1/moissonnage/Cartes.php
810 3904 d 13 h raphael /trunk/services/configurations/ config: changements des valeurs par défaut ("bdd_nom" pour cel et "chemin_cache" en test)  
/trunk/services/configurations/config_cel.ini
/trunk/services/configurations/test-conf.sed
809 3904 d 14 h raphael /trunk/services/modules/0.1/nvjfl/ nvjfl: utilisation de la bonne URL de webservice (prod-prod, test-test)  
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
808 3904 d 15 h raphael /trunk/services/modules/0.1/baseflor/ r807 follow-up: conflit de nom de méthode pour convertirEnPNGAvecRsvg|indexerFichierPng dans CommunGraphiques.php  
/trunk/services/modules/0.1/baseflor/CommunGraphiques.php
807 3904 d 15 h raphael /trunk/services/modules/0.1/ chorodep|bdtxa/cartes: factorisation du code de génération du fichier de carte PNG, dans Commun  
/trunk/services/modules/0.1/bdtxa/cartes/TaxonsCartes.php
/trunk/services/modules/0.1/chorodep/cartes/TaxonsCartes.php
/trunk/services/modules/0.1/commun/Commun.php
806 3904 d 20 h raphael /trunk/services/configurations/ config: fix la génération automatique de bdd_nom pour prendre en compte tb_cel[_test]  
/trunk/services/configurations/config_cel.ini
/trunk/services/configurations/test-sous-conf.sed
805 3904 d 20 h raphael /trunk/services/modules/0.1/chorodep/cartes/ chorodep/cartes: test du retour de exec(rsvg-convert)  
/trunk/services/modules/0.1/chorodep/cartes/TaxonsCartes.php
804 3904 d 20 h raphael /trunk/services/modules/0.1/chorodep/cartes/ chorodep/cartes: test présence répertoire de cache lors de la génération des vignettes png  
/trunk/services/modules/0.1/chorodep/cartes/TaxonsCartes.php
803 3905 d 15 h raphael /trunk/services/modules/0.1/nvjfl/ nvjfl: compat PHP-5.2, utilisation de "self::m" au lieu de "static::m"  
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
802 3905 d 15 h raphael /trunk/services/configurations/ config: amélioration du Makefile et suppression de double-quote problèmatiques pour parser les .ini  
/trunk/services/configurations/Makefile
/trunk/services/configurations/config.defaut.ini
/trunk/services/configurations/config_test.ini
/trunk/services/configurations/prod-conf.sed
/trunk/services/configurations/test-conf.sed
/trunk/services/configurations/test-sous-conf.sed
801 3905 d 15 h raphael /trunk/services/ cache: fix de l'obtention de la durée du cache auprès de Commun  
/trunk/services/bibliotheque/CacheEflore.php
/trunk/services/modules/0.1/commun/Commun.php
800 3905 d 17 h raphael /trunk/services/configurations/ config: correction de la directive "donnees" pour coste.ini  
/trunk/services/configurations/config_coste.ini
799 3905 d 17 h raphael /trunk/services/configurations/ config: ajout d'un Makefile pour la génération des fichiers de configuration en -test et en -prod  
/trunk/services/configurations/Makefile
/trunk/services/configurations/prod-conf.sed
/trunk/services/configurations/test-conf.sed
/trunk/services/configurations/test-sous-conf.sed
/trunk/services/configurations/config.defaut.ini
798 3905 d 18 h raphael /trunk/services/configurations/ config: quelques modifications/améliorations issues de l'état du serveur + saut de ligne en fin de fichier  
/trunk/services/configurations/config.defaut.ini
/trunk/services/configurations/config_baseflor.ini
/trunk/services/configurations/config_baseveg.ini
/trunk/services/configurations/config_bdnt.ini
/trunk/services/configurations/config_bdtfx.ini
/trunk/services/configurations/config_bdtxa.ini
/trunk/services/configurations/config_bibliobota.ini
/trunk/services/configurations/config_cel.ini
/trunk/services/configurations/config_chorodep.ini
/trunk/services/configurations/config_coste.ini
/trunk/services/configurations/config_eflore.ini
/trunk/services/configurations/config_fournier.ini
/trunk/services/configurations/config_insee-d.ini
/trunk/services/configurations/config_iso-3166-1.ini
/trunk/services/configurations/config_iso-639-1.ini
/trunk/services/configurations/config_lion1906.ini
/trunk/services/configurations/config_moissonnage.ini
/trunk/services/configurations/config_nva.ini
/trunk/services/configurations/config_nvjfl.ini
/trunk/services/configurations/config_nvps.ini
/trunk/services/configurations/config_osm.ini
/trunk/services/configurations/config_photoflora.ini
/trunk/services/configurations/config_prometheus.ini
/trunk/services/configurations/config_test.ini
/trunk/services/configurations/config_wikipedia.ini
797 3905 d 19 h raphael /trunk/services/ config: substitution des directives de configuration `cache.*` par `cache_*`

Commande effectuée:
$ sed -i -r \
-e 's/cache\.(stockageChemin|miseEnCache|dureeDeVie)/cache_\1/' \
-e "s/\$this->config\['cache'\]\['(stockageChemin|miseEnCache|dureeDeVie)'\]/\$this->config['cache_\1']/" \
$(egrep -rl 'cache.*(miseEnCache|dureeDeVie|stockageChemin)')
 
/trunk/services/configurations/config_baseflor.ini
/trunk/services/configurations/config_bdtxa.ini
/trunk/services/configurations/config_chorodep.ini
/trunk/services/configurations/config_eflore.ini
/trunk/services/configurations/config_moissonnage.ini
/trunk/services/modules/0.1/baseflor/CommunGraphiques.php
/trunk/services/modules/0.1/bdtxa/cartes/TaxonsCartes.php
/trunk/services/modules/0.1/chorodep/cartes/TaxonsCartes.php
796 3905 d 19 h raphael /trunk/services/tests/0.1/baseflor/ config: substitution de cache.stockageChemin par cache_stockageChemin  
/trunk/services/tests/0.1/baseflor/GraphiquesBaseflorTest.php
795 3905 d 19 h raphael /trunk/services/ config: substitution de cache.stockageChemin par cache_stockageChemin car
framework::Config() ne sait pas traiter une variable dotée d'un point dont
la partie gauche ne représente pas une section d'un fichier .ini.

Commande effectuée:
$ sed -i \
-e 's/cache.stockageChemin/cache_stockageChemin/' \
-e "s/\$this->config['cache']['stockageChemin']/\$this->config['cache_stockageChemin']/" \
configurations/* modules/0.1/*/*/*.php modules/0.1/eflore/Cartes.php tests/0.1/baseflor/GraphiquesBaseflorTest.php
 
/trunk/services/configurations/config_baseflor.ini
/trunk/services/configurations/config_bdtxa.ini
/trunk/services/configurations/config_chorodep.ini
/trunk/services/configurations/config_coste.ini
/trunk/services/configurations/config_eflore.ini
/trunk/services/configurations/config_moissonnage.ini
/trunk/services/modules/0.1/eflore/Cartes.php
/trunk/services/modules/0.1/eflore/cartes/CbnmedFormateur.php
/trunk/services/modules/0.1/eflore/cartes/CelFormateur.php
/trunk/services/modules/0.1/eflore/cartes/CenlrFormateur.php
/trunk/services/modules/0.1/eflore/cartes/GeneralFormateur.php
/trunk/services/modules/0.1/eflore/cartes/SophyFormateur.php
794 3906 d 13 h raphael /trunk/services/modules/0.1/ projets/tests: correction d'une régression de r791: les segments d'URL supplémentaires n'étaient pas pris en compte  
/trunk/services/modules/0.1/Projets.php
/trunk/services/modules/0.1/baseflor/Ontologies.php
793 3906 d 14 h raphael /trunk/services/tests/0.1/commun/ tests: fix CommunMetaDonneesTest (projet "commun" => "eflore")  
/trunk/services/tests/0.1/commun/CommunMetaDonneesTest.php
792 3906 d 14 h raphael /trunk/services/modules/0.1/ typo: francisation  
/trunk/services/modules/0.1/Projets.php
791 3906 d 14 h raphael /trunk/services/modules/0.1/ projets/tests: workaround autour du fait qu'on cherche à utiliser parfois simultanément
plusieurs classes distinctes utilisant le même nom sans namespace (PHP-5.2)... no comment
testsuite "services": 13 échecs
 
/trunk/services/modules/0.1/Projets.php
/trunk/services/modules/0.1/baseflor/Ontologies.php
/trunk/services/modules/0.1/baseveg/Ontologies.php
/trunk/services/modules/0.1/chorodep/Ontologies.php
/trunk/services/modules/0.1/eflore/Ontologies.php
/trunk/services/modules/0.1/moissonnage/Ontologies.php
790 3907 d 12 h raphael /trunk/services/tests/0.1/ webservices/tests: consulterBrut() et creerUrl() statiques et passage de \$service et \$projet à consulterJson().
En effet, on peut observer que certains tests, tels que EfloreOntologiesTest::testRecherche(), se comportent
différemment selon que la suite est lancée en intégralité ou non.
Le service requêté peut par exemple s'avérer finalement être "baseflor" au
lieu initialement "eflore". L'usage extensif d'attribut de classe pourrait en être
la cause (dans le cas du lancement de tests en parallèles par exemple).
En tout état de cause, et pour faciliter la compréhension du code au détriment d'un léger
accroissement de la verbosité, consulterBrut(), creerUrl() et consulterJson() nécessitent
désormais l'intégralité des paramètres dont ils font usage.
[ le nombre de tests en échec ne change pas: 20 ]
 
/trunk/services/tests/0.1/ServiceEflorePhpUnit.php
/trunk/services/tests/0.1/baseflor/GraphiquesBaseflorTest.php
/trunk/services/tests/0.1/baseflor/InformationsBaseflorTest.php
/trunk/services/tests/0.1/baseflor/OntologiesBaseflorTest.php
/trunk/services/tests/0.1/baseveg/SyntaxonsTest.php
/trunk/services/tests/0.1/bdtfx/BdtfxNomsTest.php
/trunk/services/tests/0.1/bdtfx/BdtfxTaxonsTest.php
/trunk/services/tests/0.1/bibliobota/PublicationsTest.php
/trunk/services/tests/0.1/cel/CelImagesTest.php
/trunk/services/tests/0.1/chorodep/ChorodepCartesTest.php
/trunk/services/tests/0.1/chorodep/ChorodepObservationsTest.php
/trunk/services/tests/0.1/chorodep/ChorodepOntologiesTest.php
/trunk/services/tests/0.1/commun/CommunAideTest.php
/trunk/services/tests/0.1/commun/CommunMetaDonneesTest.php
/trunk/services/tests/0.1/commun/CommunOntologiesTest.php
/trunk/services/tests/0.1/eflore/EfloreCartesTest.php
/trunk/services/tests/0.1/eflore/EfloreOntologiesTest.php
/trunk/services/tests/0.1/iso-639-1/Iso6391LanguesTest.php
/trunk/services/tests/0.1/nvjfl/NvjflNomsVernaTest.php
/trunk/services/tests/0.1/wikipedia/WikipediaTexteTest.php