La méthode¶
Il est décrit ici la méthode pour la création d” objets métiers:
Le développement consiste à créer des objets métier (/obj) qui surchargent la classe abstraite om_dbformdyn.class.php et à modifier les valeurs par défaut des variables dans les fichiers sql (nom_objet.inc et nom_objet.form.inc)
Voir aussi le générateur pour automatiser les scripts métier.
Surcharger les classes openMairie¶
Il vaut mieux utiliser le générateur pour initialiser les classes metiers.
Le générateur surcharge la classe om_dbformdyn.class.php par rapport aux informations de la base
classe abstraite <- classe metier generee <- classe metier 1 <- classe metier 2 ...
openMairie depuis la base
om_dbformdyn.class.php <- gen/obj/nom_objet.class.php <- obj/nom_objet.class.php
Exemple avec concession d’openCimetiere
om_dbformdyn.class.php
<- gen/obj/emplacement.class.php
<-/obj/emplacement.class.php <- /obj/concession.class.php
Modifier les valeurs par défaut¶
Il est décrit ici les valeurs par défaut dans core/om_dbformdyn.class.php qui est une classe d’openMairie.
Les valeurs suivantes sont mises par defaut afin de pouvoir construire rapidemment un formulaire
valeur par defaut
en ajout = initialisation vide
type par defaut
type text pour ajout et modification
type hiddenstatic pour suppression
libelle par défaut :
Libellé = nom du champ dans le SGBD
taille et max d un champ
Taille et max = longueur du champ dans le SGBD
les regroupements et groupements de champs sont vides
les fonctions javascript ne sont pas utilisées
Modifier les valeurs par defaut par les méthodes assesseurs¶
Elles se font dans la classe obj/nom_objet.class.php
Les valeurs par défaut sont modifiées par la méthode setVal(nomduchamp, nouvelle valeur)
Les types par défaut sont modifiés par la méthode setType(nomduchamp, nouveau type)
Les longueurs d affichage par défaut sont modifiées par la méthode setTaille(nomduchamp, nouvelle valeur)
Les maximums autorisés par défaut sont modifiés par la méthode setMax(nomduchamp, nouvelle valeur)
Les libelles de champ par défaut sont modifiés par la méthode setLib(nomduchamp, nouvelle valeur)
Les scripts javascript sont appellés dans la méthode setOnchange()
Voir framework/formulaire
La class om_dbformdyn.class.php¶
om_dbform.class.php est une classe openMairie dans core/
La classe abstraite dbform gère l’interface entre l’objet métier et la base de données connectée via DBPEAR.
Les méthodes principales sont les suivantes :
orientées sgbd
constructeur ajouter : Ajoute un objet Modifier : Modifie un objet Supprimer : Supprime un objet Verifier : Contrôle un objet Clesecondaire : Contrôle les cles secondaires triggers avant/apres ajout/modification/suppression
orientees Formulaire
Formulaire : Constitue le formulaire et fait appel à formulaire.dyn.class.php sousFormulaire : Constitue le sousformulaire -> appel à formulaire.dyn.class.php Message : Retourne le message d erreur (contrôle php) bouton : Affiche le bouton Retour : gére le retour à une interface php en fin de saisie sousformulaireRetour : gére le retour à une interface php en fin de saisie de sous formulaire setType : Envoi au formulaire les type de champ setVal : Envoi au formulaire les valeurs par défaut setValSousformulaire : Envoi au sousformulaire les valeurs par défaut setlib : Envoi au formulaire les libellés de champs setTaille : Envoi au formulaire la taille du champ setMax : Envoi au formulaire la taille maximum autorisée du champ setSelect : Envoi au formulaire les champs select à afficher setOnchange : Envoi au formulaire les controles javascript à effectuer en cas de changement de données dans le champ setGroupe : Envoi au formulaire le groupement de champ par ligne setRegroupe : Envoi au formulaire un fieldset setOnkeyup setOnclick mail selectiste selectlistemulti
des fonctions de traitement de champ heure et date:
DateDB : transforme les dates affichées en date pour base de données HeureDB : controle du champs heure saisi 00 ou 00:00 ou 00:00:00 DateSystemeDB : mise au format base de donnees de la date systeme DatePHP : controle et transforme la date saisie (jj/mm/aaaa) en date format PHP
des fonctions pour faire des calculs
AnneePHP : controle et recupere l’année de la date saisie (jj/mm/aaaa) MoisPHP : controle et recupere le mois de la date saisie (jj/mm/aaaa) JourPHP : controle et recupere le jour de la date saisie (jj/mm/aaaa)
La classe dbformdyn.class.php fait appel à la classe formulaire.dyn.class.php pour afficher le formulaire.
Il est créé 2 objets :
- un objet db qui fait la connexion avec la base
- un objet form qui décrit le formulaire
L’objet db¶
db est l’objet de connexion a la base dont les proprietes sont les suivantes
DB_pgsql Object
(
[phptype] => pgsql
[dbsyntax] => pgsql
[features] => Array (
[limit] => alter
[new_link] => 4.3.0
[numrows] => 1
[pconnect] => 1
[prepare] =>
[ssl] => 1
[transactions] => 1 )
[errorcode_map] => Array ( )
[connection] => Resource id #19
[dsn] => Array (
[phptype] => pgsql
[dbsyntax] => pgsql
[username] => postgres
[password] => postgres
[protocol] => tcp
[hostspec] => localhost
[port] => 5432
[socket] =>
[database] => sig
[title] => Openmairie Exemple PostGreSQL schema SIG
[formatdate] => AAAA-MM-JJ
[schema] => openmairie
)
[autocommit] => 1
[transaction_opcount] => 0
[affected] => 0
[row] => Array ([20] => 10 )
[_num_rows] => Array ( [20] => 10 )
[fetchmode] => 1
[fetchmode_object_class] => stdClass
[was_connected] =>
[last_query] => select * from openmairie.om_parametre where om_collectivite=2
[options] => Array (
[result_buffering] => 500
[persistent] =>
[ssl] =>
[debug] => 2
[seqname_format] => %s_seq
[autofree] =>
[portability] => 63
[optimize] => performance
)
[last_parameters] => Array ( )
[prepare_tokens] => Array ( )
[prepare_types] => Array ( )
[prepared_queries] => Array ( )
[_last_query_manip] =>
[_next_query_manip] =>
[_debug] =>
[_default_error_mode] =>
[_default_error_options] =>
[_default_error_handler] =>
[_error_class] => DB_Error
[_expected_errors] => Array ( )
)
L’objet form¶
form est l’objet formulaire dont les proprietes sont les suivantes
formulaire Object (
[enteteTab] =>
[val] => Array (
[om_parametre] => 1
[libelle] => maire
[valeur] => O PENMAIRIE
[om_collectivite] => 1 )
[type] => Array (
[om_parametre] => text
[libelle] => text
[valeur] => text
[om_collectivite] => text )
[taille] => Array (
[om_parametre] => 11
[libelle] => 20
[valeur] => 50
[om_collectivite] => 11 )
[max] => Array (
[om_parametre] => 11
[libelle] => 20
[valeur] => 50
[om_collectivite] => 11 )
[lib] => Array (
[om_parametre] => Om_parametre
[libelle] => Libelle
[valeur] => Valeur
[om_collectivite] => Om_collectivite )
[groupe] => Array (
[om_parametre] =>
[libelle] =>
[valeur] =>
[om_collectivite] => )
[select] => Array (
[om_parametre] => Array ([0] => [1] => )
[libelle] => Array ( [0] => [1] => )
[valeur] => Array ( [0] => [1] => )
[om_collectivite] => Array ( [0] => [1] => ) )
[onchange] => Array (
[om_parametre] =>
[libelle] =>
[valeur] =>
[om_collectivite] => )
[onkeyup] => Array (
[om_parametre] =>
[libelle] =>
[valeur] =>
[om_collectivite] => )
[onclick] => Array (
[om_parametre] =>
[libelle] =>
[valeur] =>
[om_collectivite] => )
[regroupe] =>
[correct] =>
)