8. La méthode¶
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.
Il est décrit ensuite les 2 objets : objet de connexion db et l’objet formulaire form.
8.1. Surcharger les classes openMairie¶
Il vaut mieux utiliser le générateur pour initialiser les classes métiers.
Le générateur surcharge la classe om_dbformdyn.class.php par rapport aux informations de la base
classe abstraite <- classe métier générée <- classe métier 1 <- classe métier 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
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
8.2. L’objet db¶
db est l’objet de connexion a la base dont les propriétés 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 ( )
)
8.3. L’objet form¶
form est l’objet formulaire dont les propriétés 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] =>
)