* locale based sorting implemented

This commit is contained in:
Dávid Danyi
2018-05-14 15:22:38 +02:00
parent 6e55579fb8
commit 78dfa176f0
2 changed files with 36 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ use UtilityModule\Hydrator\DoctrineObject;
class AwardeeManager
{
const SORT_LOCALE = 'hu_HU.UTF8';
const IMAGE_DIRECTORY = 'data/user-data/images/awardee';
/** @var EntityManager */
@@ -31,9 +32,11 @@ class AwardeeManager
*/
public function getAwardees(): ?array
{
return $this->entityManager->getRepository(Awardee::class)->findBy([], [
$result = $this->entityManager->getRepository(Awardee::class)->findBy([], [
'year' => 'DESC',
'name' => 'ASC',
]);
return $this->sortAwardeesResult($result);
}
/**
@@ -42,9 +45,25 @@ class AwardeeManager
*/
public function getAwardeesByYear(int $year): ?array
{
return $this->entityManager->getRepository(Awardee::class)->findBy([
$result = $this->entityManager->getRepository(Awardee::class)->findBy([
'year' => $year,
], [
'name' => 'ASC',
]);
return $this->sortAwardeesResult($result);
}
/**
* @param Awardee[] $awardees
* @return Awardee[]
*/
private function sortAwardeesResult(array $awardees): array
{
setlocale(LC_COLLATE, self::SORT_LOCALE);
usort($awardees, function (Awardee $a, Awardee $b) {
return strcoll($a->getName(), $b->getName());
});
return $awardees;
}
/**