Principes relatifs au formulaire
Utilisation par défaut de la base de données et script génerique d'interface
Le formulaire gère l’interface entre la base de données et l’utilisateur.
Les formulaires sont de deux types :
affichage des données en tableau: classe tab.class.php
mise à jour des données: classe dbform.class.php
Ces classes utilisent les mêmes principes:
1 UTILISATION DES INFORMATIONS DE LA BASE DE DONNEES
Le framework utilise par défaut toutes les informations de la base de données : nom de champ, taille, type … récupérées par la requête SQL.
Le formulaire est limité dans sa présentation à une succession de champ qui peuvent être ou non regroupés sur une même ligne.
Chaque requête est gérée de manière indépendante pour chaque base (sauf les requêtes de mise à jour qui sont compatibles avec db pear).
Les requêtes de chaque base de données sont gérées dans des fichiers à inclure (répertoire sql/typedebase/….inc) pour régler les différences de langage au niveau des FONCTIONS de sql
Exemple : substr (oracle), substring (postgre, mysql)
Concat (mysql), || pour oracle et postgre
Jointure (cartésienne ou join)
Il n’a pas été choisi de développer des méthodes complémentaires à DBPEAR qui n’aurait pas permis de prendre en compte la diversité de langage SQL suivant les bases de données.
2 SCRIPT GENERIQUE D INTERFACE
Les objets métiers simples utilisent les méthodes :
(tab.class.php, db_form.class.php) associées à un interface générique (tab.php, form.php)L’objet métier est alors passé en paramètre (le paramétrage se fait dans un fichier avec un nombre de paramètres limité, ce qui limite la complexité) :
Exemple 1 : tab.php ?obj=exemple = affiche la table exemple suivant les paramètres définies en sql/mysql/exemple.inc ou sql/pgsql/exemple.inc
Exemple 2 : form.php ?obj=exemple = affiche le formulaire bureau suivant les paramètres définies en sql/mysql/exemple.form.inc ou sql/pgsql/exemple.form.inc en utilisant l’objet métier /obj/bureau.class.php où sont définis les méthodes spécifiques de l’objet
Les objets métiers complexes héritent des classes génériques, peuvent avoir leurs propres méthodes et utilisent leurs propres interface
exemple openelec: voir http://www.openelec.org pour les inscriptions
inscription.form.php ou inscriptioncg.form.php -> mouvement.class.php -> dbform.class.php-> db.php