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'option latest 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ètre id.

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().

13.14.2.8 Voir aussi

×