13.6.2.7 Doc::preStore()
Hameçon (ou hook) utilisé par la méthode Doc::Store()
.
Elle est appelée avant l'enregistrement en base de données. Cette méthode doit
vérifier si les conditions de modification de document sont valides.
13.6.2.7.1 Description
string preStore ()
Si cette méthode retourne un message d'erreur alors la modification est
abandonnée et la méthode Doc::Store()
retourne le message fourni
par cette méthode afin d'indiquer l'échec.
13.6.2.7.1.1 Avertissements
Le document n'a pas encore d'identificateur lors d'une création. Cette méthode n'est pas appelée lors d'une révision.
13.6.2.7.2 Liste des paramètres
Aucun paramètre.
13.6.2.7.3 Valeur de retour
Message d'erreur. Si la méthode retourne une chaîne de caractères non vide, elle est considérée comme un message d'erreur et la création de document est abandonnée.
Ce message est aussi stocké dans le paramètre de sortie $info->preStore
de la
méthode Doc::Store()
.
13.6.2.7.4 Erreurs / Exceptions
Aucune.
13.6.2.7.5 Historique
Aucun.
13.6.2.7.6 Exemples
Dans la famille MyFamily, la modification d'un document ne doit être possible que si la somme des attributs MY_NUMBERONE et MY_NUMBERTWO est inférieure au paramètre MY_MAX de la famille.
Soit la famille suivante :
BEGIN | Ma famille | MYFAMILY | ||||||
---|---|---|---|---|---|---|---|---|
CLASS | My\MyFamily | |||||||
// | idattr | idframe | label | T | A | type | ord | vis |
ATTR | MY_IDENTIFICATION | Identification | N | N | frame | 10 | W | |
ATTR | MY_NUMBERONE | MY_IDENTIFICATION | nombre 1 | Y | N | int | 20 | W |
ATTR | MY_NUMBERTWO | MY_IDENTIFICATION | nombre 2 | N | N | int | 30 | W |
PARAM | MY_PARAMETERS | Paramètres | N | N | frame | 10 | W | |
PARAM | MY_MAX | MY_PARAMETERS | max | N | N | int | 20 | W |
END |
namespace My; use \Dcp\AttributeIdentifiers\MyFamily as MyAttributes; class MyFamily extends \Dcp\Family\Document { public function preStore() { $err = ''; $n1 = $this->getAttributeValue(MyAttributes::my_numberone); $n2 = $this->getAttributeValue(MyAttributes::my_numbertwo); $max = $this->getFamilyParameterValue(MyAttributes::my_max); if (($n1 + $n2) > $max) { $err = sprintf("Max %d is reached", $max); } return $err; } }
13.6.2.7.7 Notes
En cas de famille héritée, il est nécessaire d'appeler l'hameçon du parent pour disposer des mêmes fonctionnalités.
Cette méthode est appelée par Doc::store
en cas de création, de
révision et de modification tandis que l'hameçon
Doc::preCreated()
est appelé qu'en cas de création ou de
révision.