13.14.2 new_Doc
Cette fonction permet de récupérer un document stocké en base.
13.14.2.1 Description
\Dcp\Family\Document new_Doc ( string $dbaccess, int|string $id = "", bool $latest = false )
Cette fonction retourne un objet héritant de la classe \Dcp\Family\Document
en fonction de l'identifiant du document (paramètre $id
).
Elle réalise les points suivants :
- récupération des données et des propriétés du documents,
- récupération de son profilage,
- instanciation d'un objet de la classe correspond à la famille du document.
13.14.2.1.1 Avertissements
Pour des raisons de compatibilité avec les versions précédentes de Dynacase, la
fonction new_Doc()
retourne un objet de la classe \Dcp\Family\Document
si
l'identifiant n'existe pas où n'est pas indiqué.
Cet objet n'est pas utilisable en tant que tel et doit être considéré comme un retour d'erreur.
Cette méthode utilise l'objet de partage de document. Si le document demandé est dans cet objet de partage, le document est récupéré de la zone de partage et non de la base de données.
13.14.2.2 Liste des paramètres
- (string)
dbaccess
- Indique les coordonnées de la base de données. Ce paramètre est maintenant obsolète et peut être laissé vide.
- (int|string)
id
- Identifiant du document que l'on souhaite récupérer. Cet identifiant est
soit la propriété
id
du document, soit la propriéténame
(nom logique) du document. Si l'identifiant désigne un nom logique, la révision courante du document est retournée (l'optionlatest
est ignorée). - (string)
latest
(défaut :false
) - Dans le cas d'un document révisé indique si l'on souhaite récupérer
la version courante (
true
) ou la version référencée par le paramètreid
.
13.14.2.3 Valeur de retour
Un document héritant de la classe \Dcp\Family\Document
, la classe exacte du
document est fonction de la famille du document.
13.14.2.4 Erreurs / Exceptions
Si jamais, le fichier méthode PHP associé à la famille du document
n'existe pas alors null
est retourné.
Lorsque il n'existe pas de document correspondant au paramètre $id
ou lorsque
le paramètre $id
n'est pas passé alors un objet de la classe
\Dcp\Family\Document
est retourné. Cet objet doit être considéré comme un
retour d'erreur et n'est pas utilisable, pour détecter ce type de retour vous
pouvez utiliser les fonctions :
Doc::isAlive()
: cette méthode vérifie que l'objet existe en base et n'a pas été supprimé,Doc::isAffected()
: cette méthode vérifie que l'objet existe en base.
13.14.2.5 Historique
Aucun
13.14.2.6 Exemple
Le document de test de nom logique FF
a deux révisions avec les identifiants
1455 et 1460. Il s'agit d'un document de la famille "Demande d'adoption".
Le document 1461 de la famille "Animal" a été supprimé.
require_once "FDL/freedom_util.php"; $docs = array(); $docs["FF"] = new_Doc("", "FF"); $docs[1455] = new_Doc("", 1455); $docs["1455_latest"] = new_Doc("", 1455, true); $docs[1461] = new_Doc("", 1461); $docs["idontexist"] = new_Doc("", "idontexist"); $docs["withoutArgument"] = new_Doc(); foreach ($docs as $key => $doc) { if ($doc->isAlive()) { printf("[%s]: Doc %s (%d : %s) is affected and alive\n", $key, $doc->getTitle(), $doc->getPropertyValue("id"), get_class($doc)); } elseif ($doc->isAffected()) { printf("[%s]: Doc %s (%d : %s) is only affected\n", $key, $doc->getTitle(), $doc->getPropertyValue("id"), get_class($doc)); } else { printf("[%s]: Doesn't exist (the document has the class %s)\n", $key, get_class($doc)); } }
Résultat :
[FF]: Doc ff (1460 : Dcp\Family\Zoo_demandeadoption) is affected and alive [1455]: Doc ff (1455 : Dcp\Family\Zoo_demandeadoption) is affected and alive [1455_latest]: Doc ff (1460 : Dcp\Family\Zoo_demandeadoption) is affected and alive [1461]: Doc supprimé (1461 : Dcp\Family\Zoo_animal) is only affected [idontexist]: Doesn't exist (the document has the class Dcp\Family\Document) [withoutArgument]: Doesn't exist (the document has the class Dcp\Family\Document)
13.14.2.7 Notes
Cette fonction ne doit pas être utilisée pour créer un nouveau document.
La création de document est réalisée par la fonction createDoc().