Carew\Processor::sortByDate PHP Method

sortByDate() private method

private sortByDate ( $documents )
    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;
    }