13.6.2.12 Doc::preAffect()

3.2.20 Hameçon (ou hook) utilisée par la fonction new_doc() et pour toute fonction qui récupère les données d'un document en base de données afin de les affecter à l'objet comme par exemple lors de recherche de document.

13.6.2.12.1 Description

void protected function preAffect (array &$data, 
                                    bool &$more , 
                                    bool &$reset )

Cette permet de contrôler l'affectation des données avant leur affectation dans l'objet. Au moment de l'appel, l'objet document contient les valeurs affectées du précédent document.

Cette méthode ne peut pas empêcher l'affectation mais peux modifier les données affectées.

13.6.2.12.1.1 Avertissements

Cette méthode est appelée pour toute affectation d'objet documentaire. Elle est appelée principalement par les fonctions de récupération de document et de recherche mais aussi par les méthode de révision et de changement d'état.

Cette méthode étant bas-niveau, les tests et traitement définis dans cette fonction peuvent pénaliser les temps de traitement.

Lors d'une recherche, cette méthode est appelée pour chacun des document trouvés si l'option de retour précise le retour d'objet. Dans le cas de retour brut, cette méthode n'est pas appelée car il n'y a pas de création d'objet.

13.6.2.12.2 Liste des paramètres

(array) data

Contient les valeurs qui seront affectées à l'objet. Le tableau est indexé par les noms des attributs et propriétés du document.

Ces valeurs peuvent être modifiées. Le tableau "data" sert ensuite lors de l'affectation.

Les valeurs indexées "values" et "attrids" contiennent aussi l'ensemble des attributs sous une forme sérialisée.

(bool) more

Indique que si les données fournies par le paramètre data sont incomplètes, alors les données manquantes sont récupérées depuis l'index "values" (s'il existe) fourni dans ce même paramètre data.
Il est possible de modifier ce paramètre afin de forcer ou inhiber ce fonctionnement.

Note: Dans le cas d'une recherche ce paramètre est mis à true

(bool) reset

Indique que toutes les données de la précédente affectation seront effacées Cela concerne les propriétés et les attributs mais aussi les variables privées. Il est possible de modifier ce paramètre afin de forcer ou inhiber le reset.

Note: Dans le cas d'une recherche ce paramètre est mis à true

13.6.2.12.3 Valeur de retour

Aucune.

13.6.2.12.4 Erreurs / Exceptions

Aucune.

13.6.2.12.5 Historique

Aucun.

13.6.2.12.6 Exemples

Forcer l'affectation d'un attribut suivant une certaine condition. Si aucun message d'avertissement (my_warning) n'est indiqué et le niveau (my_order) est supérieur à 10 alors on indique un message par défaut.

namespace My;
use \Dcp\AttributeIdentifiers\MyFamily as MyAttributes;
 
class MyFamily extends Dcp\Family\Document
{
    protected function preAffect(array &$data, &$more, &$reset)  {
        if (!$data[MyAttributes::my_warning]) {
            if ($data[MyAttributes::my_order] > 20 ) {
                $data[MyAttributes::my_warning]="Emergency level priority";
            } elseif ($data[MyAttributes::my_order] > 10 ) {
                $data[MyAttributes::my_warning]="High level priority";
            } 
        }
    }
}

En cas d'affichage de rapport ou de document, l'attribut my_warning sera affiché suivant l'ordre my_order. Par contre, cela ne constitue pas une affectation en base de donnée sauf si l'affectation est suivie d'une sauvegarde.

13.6.2.12.7 Notes

Cette méthode n'est pas appelée si aucune donnée n'est fournie dans le tableau data.

13.6.2.12.8 Voir aussi

×