private function sortByDate($documents)
{
uasort($documents, function (Document $a, Document $b) {
$aMetadatas = $a->getMetadatas();
$bMetadatas = $b->getMetadatas();
if (!array_key_exists('date', $aMetadatas) && !array_key_exists('date', $bMetadatas)) {
if ($a->getFilePath() < $b->getFilePath()) {
return -1;
} elseif ($a->getFilePath() > $b->getFilePath()) {
return 1;
}
return 0;
}
if (!array_key_exists('date', $aMetadatas)) {
return -1;
}
if (!array_key_exists('date', $bMetadatas)) {
return 1;
}
if ($aMetadatas['date'] < $bMetadatas['date']) {
return -1;
} elseif ($aMetadatas['date'] > $bMetadatas['date']) {
return 1;
} elseif ($a->getFilePath() < $b->getFilePath()) {
return -1;
} elseif ($a->getFilePath() > $b->getFilePath()) {
return 1;
}
return 0;
});
return $documents;
}