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:
- d'un array d'identifiant de documents,
- d'un objet
SearchDoc, - de la méthode
SearchDoc::getDocumentList.
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
- 13.8.4 DocumentList::addDocumentIdentifiers() nouveauté