13.8 Classe DocumentList

La classe DocumentList représente une abstraction permettant de manipuler une liste de documents. Cette classe implémente les interfaces :

Les objets de cette classe peuvent donc être utilisés via la directive foreach() et être utilisés par la fonction count().

Dans le cas d'une itération avec foreach(), les clefs sont alors les identifiants des documents et les valeurs sont les documents sous la forme d'un objet Doc ou de documents bruts.

Il existe plusieurs moyens d'obtenir un objet DocumentList, par exemple à partir:

13.8.1 Constructeur

L'objet DocumentList peut être construit à priori à partir d'un objet SearchDoc de recherche de documents.

$search = new \SearchDoc(...);
$documentList = new \DocumentList($search);

L'objet DocumentList peut aussi être initialisé à posteriori à l'aide de la méthode addDocumentIdentifiers pour la recherche des dernières révisions de documents :

$documentList = new \DocumentList();
$documentList->addDocumentIdentifiers(array($initId_1, [...], $initId_N));

13.8.2 Exemples

  • Exemple #1

DocumentList avec des documents bruts :

$search = new SearchDoc('', 'FACTURE');
$search->addFilter("montant >= %d", 10000);
 
/*
 * Par défaut, `searchDoc` retourne des documents bruts.
 *
 * La liste `DocumentList` obtenue contient alors des
 * documents bruts.
 */
 
$documentList = new \DocumentList($search);
 
/*
 * On parcours la liste des résultats avec un foreach()
 */
 
printf("Nombre de factures : %d", count($documentList));
 
foreach ($documentList as $docId => $rawDoc) {
    printf("* Facture {id = '%d', title = '%s'}.", $docId, $rawDoc['title'])
}
  • Exemple #2

DocumentList avec des objets Doc :

$search = new SearchDoc('', 'FACTURE');
$search->addFilter("montant >= %d", 10000);
 
/*
 * On configure la recherche pour retourner des objets `Doc`
 */
 
$search->setObjectReturn(true);
 
/*
 * La liste `DocumentList` obtenue contient alors des objets `Doc`.
 */
$documentList = new \DocumentList($search);
 
/*
 * On parcours la liste des résultats avec un foreach()
 */
 
printf("Nombre de factures : %d", count($documentList));
 
foreach ($documentList as $docId => $doc) {
    printf("* Facture {id = '%d', title = '%s'}.", $docId, $doc->getTitle());
}

13.8.3 Voir aussi

Contenu du chapitre

×