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é