Livraison de l'application Objet

Cette application a pour but de manipuler toutes sortes d'objets, de les ranger dans une structure universelle afin de pouvoir enrichir cette base d'objets à l'aide de fiches de saisie et de pouvoir ensuite effectuer toutes sortes de recherches en vue de retrouver très précisément ce que l'on veut.
Contrairement à la recherche plein texte des moteurs de recherche type Google ou équivalents, les données ne sont pas stockées en vrac dans des textes.
Au contraire, ici, on ne stocke que des données élémentaires telles qu'un nom de personne, un prénom, une ville, une couleur, une plante, etc ... Chaque donnée élémentaire, par exemple Pierre ou Paul, ... a un père, ici le prénom, appelé objet générique. De même pour les noms de personnes, les villes, les couleurs, les numéros de téléphone, etc ...

Pour pouvoir enregistrer ou saisir une donnée élémentaire, il faut d'abord créer son objet générique. On dispose alors d'un formulaire de saisie permettant d'enregistrer des occurrences de l'objet générique. Par exemple si on crée l'objet générique Prénom, il devient possible d'enregistrer ses occurrences telles que Pierre, Paul, Jacques, Marie, Lucie, etc ...
De la même façon on peut créer l'objet générique Nom de personne puis ensuite procéder à la saisie de ses occurrences Dupont, Durant, Duchmol, Carlier, Desprez, etc ...

Mais cette façon d'enregistrer les informations n'est pas pratique et de plus ne crée pas de liens entre les différents types d'objets !

C'est pourquoi l'application comprend également la notion de fiche de saisie, utilisable pour faciliter la saisie de nombreuses informations et surtout pour structurer ces informations.
Il faut d'abord créer une fiche générique qui servira de modèle pour toutes les futures occurrences de fiches.
Pour créer une fiche générique, il faut lui donner un nom et lui associer des données génériques.
Par exemple pour créer une fiche Contact, on lui associe l'objet générique Nom de personne, l'objet générique Prénom, l'objet générique Téléphone, Email, etc ... Pour chacun de ces objets génériques on peut en même temps définir un facteur de répétition; par exemple 2 noms, 3 prénoms, 2 numéros de Téléphone, 3 Email, etc ...
Cela signifie que l'on pourra saisir dans une occurrence de la fiche Contact, au maximum 2 noms, 3 prénoms, 2 téléphones, 3 email.

Une fois la fiche générique Contact créée on peut dès lors saisir de très nombreuses occurrences de fiches Contact qui correspondent à chacun de nos contacts.

De la même façon on peut définir différentes fiches génériques correspondant à chacun de nos besoins. Par exemple, si l'on souhaite définir un catalogue de plantes, on devra créer les objets génériques Nom de plante, Famille de plante, Description de la plante, Hauteur, Pays d'Origine, Période de floraison, Couleur, Rusticité, etc ... puis la fiche générique Plante que l'on associera à ces objets génériques.
Une fois cela fait, on pourra saisir les fiches occurrences correspondant à chaque plante.

Bien évidemment, on dispose d'outils pour retrouver facilement toute donnée enregistrée. Le premier outil de recherche est basé sur la connaissance de l'objet générique que l'on peut assimiler au type de la donnée. Par exemple si on précise le type Nom de personne et qu'on fournit le critère de recherche %u%, on retrouvera Dupont, Durant, Duchmol mais aussi les occurrences fiches correspondantes. On retrouvera donc toutes les associations entre données que nous avons prévues et saisies.

Le deuxième outil de recherche est plus intéressant car il permet de faire des recherches multi-critères. Cet outil est basé sur le choix d'une fiche générique. Une fois cette fiche choisie, apparaissent tous les types de données correspondants à cette fiche, par exemple Nom, Prénom, Téléphone, Mail. Cette fois on peut mettre un critère sur chacun de ces types, soit par exemple D% dans Nom, %e dans Prénom, 01% dans Téléphone. Cette recherche pourra trouver au moins un Dupont prénommé Hélène et ayant un téléphone commençant par 01.

Très important: tout couple (type de donnée, valeur de la donnée) est unique. Il n'y a qu'une seule occurrence d'objet Prénom Paul ! Mais cela ne signifie pas qu'il n'y a qu'un seul de nos contact qui puisse se prénommer Paul.

En fait l'application se compose essentiellement d'une table objet qui contient chaque objet générique et toutes ses occurrences uniques. Cette table contient aussi chaque fiche générique et toutes ses occurrences fiches.

Les relations entre une fiche générique et les objets génériques sont mémorisées dans une table relation qui contient des triplets; le premier élément (composé) de ce triplet est la clé primaire de la fiche dans la table objet. Le deuxième élément (composant) est la clé primaire de l'objet associé dans la table objet. Le troisième élément est le facteur de répétition défini pour la fiche. De même les relations entre une occurrence de fiche et les occurrences d'objet sont mémorisées de la même façon dans la table relation.

Ainsi si le prénom Paul apparaît dans des fiches Contact, c'est la clé correspondant à l'occurrence objet Paul qui est dupliquée dans les triplets de la table relation. Le type d'objet Prénom Paul reste bien unique dans la table objet.

Bien que la donnée élémentaire est le plus souvent de courte longueur, il est néanmoins possible d'enregistrer comme valeur de l'objet, un grand texte ou encore un chemin ou un lien vers un fichier, une image, une vidéo, etc ...

Cette possibilité est offerte parce que le champ qui reçoit la valeur de la donnée est de taille conséquente (environ 16000 caractères), mais aussi parce que l'on associe à la donnée élémentaire une taille et un type qui sont mémorisés dans une table objet_type, une sorte d'extension de la table objet, utilisée uniquement pour les objets génériques.

Il est possible d'associer à une fiche générique une autre fiche générique. Cela est nécessaire pour prendre en compte certaines nécessités des fiches. Par exemple il peut être utile d'associer à un contact plusieurs adresses. Or, cette adresse se compose d'au moins d'une ligne adresse, d'une commune, d'un code postal et d'un pays. Si le contact a plusieurs adresses, et pour lier correctement entre elles ces données élémentaires, il faut créer une fiche adresse à laquelle on associe la ligne adresse, la commune et le code postal.
Et à la fiche Contact est donc associée à cette fiche Adresse.

L'application Objet est disponible et utilisable gratuitement mais sans aucune garantie de son concepteur.
L'application fonctionne bien mais peu être très largement améliorée dans ses limites, dans son code et dans ses fonctionnalités.
Cette livraison de l'application Objet, s'adresse plus particulièrement à des développeurs chevronnés.
L'exemple fourni est assez limité; il faut l'enrichir selon vos désirs pour découvrir toutes les possibilités.
Personnellement j'utilise l'application pour gérer tous mes contacts avec leurs adresses et leurs localisations (latitude et longitude); ceci me permet de rechercher tous mes contacts dans un carré donné autour d'une latitude et longitude fixées.
Je l'utilise aussi pour gérer un catalogue de plantes.
J'envisage de l'utiliser pour affecter des critères à tout document enregistré sur mon PC et permettre ainsi une recherche sur ces critères.

Si cette application vous enthousiasme et/ou si vous désirez la modifier ou l'enrichir merci de bien vouloir m'en avertir.
En cas de problème itou: mail de Christian Rozé
L’application objet a été développée en Php8 et utilise la base de données Mariadb / Mysql

L’ensemble des programmes sources utilisés sont dans le fichier téléchargeable suivant: siteobjet-80.zip
L’ensemble des données exemple sont dans le fichier save/objet-initialisation.sql créé lors de la décompression du fichier zip ci-dessus. Pour les recharger, utiliser la fonction Restauration base.

La décompression du fichier zip donne l’arborescence de fichiers et répertoires suivante 
siteobjet
_index.php le démarreur
_index.css le fichier css à adapter aux besoins
_*.php tous les programmes php
_aide
__*.html quelques pages d’aide (à compléter)
_Doc et Suivi
__*.odt divers documents de suivi développement
__livraison.odt (ce document)
_export
__vide
_lib
__ban-menu.php entête de page et menu
__lib.php toutes les fonctions utilisées
__pied.php pied de page
_save
__objet-initialisation.sql La sauvegarde des données exemple

Pour utiliser l’application sur un PC
Disposer d’un serveur de pages Apache ou autre paramétré pour utiliser php8
Disposer d’une base de données type Mariadb ou mysqli
Définir le -répertoireweblocal-
Y restaurer le fichier siteobjet-80.zip qui crée l’arborescence décrite ci-dessus
Personnaliser dans la fonction ouvreBase située dans lib.php :
param2 = admin à remplacer par le nom de l’administrateur de la base
param3 = passe à remplacer par le mot de passe de l’administrateur de la base
Lancer l’application en local via l’URL du navigateur avec :
localhost/-répertoireweblocal-/siteobjet
Le démarreur index.php affiche un menu minimum
Cliquer sur Connexion
dans le champ email : entrer admin@gmail
dans le champ mot de passe : entrer passe
cliquer sur le bouton connexion
Le menu de l’administrateur s’affiche avec toutes les possibilités du logiciel.
Commencer par changer le mot de passe admin par sécurité

Lire en priorité le document livraison.odt qui contient un mémo d'aide au démarrage
Lire aussi les documents situés sur le répertoire aide
Commencer à utiliser l'application Objet sur votre ordinateur personnel, à votre guise

Cette application peut être installée sur un serveur et devenir accessible à tous ceux qui sont enregistrés sur le fichier usager de l'application.

Edité le:21/01/2025