You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
825 B
27 lines
825 B
<?php |
|
|
|
namespace App\Provider; |
|
|
|
use App\Entity\Article; |
|
use App\Enum\IndexStatusEnum; |
|
use Doctrine\ORM\EntityManagerInterface; |
|
use FOS\ElasticaBundle\Provider\PagerfantaPager; |
|
use FOS\ElasticaBundle\Provider\PagerInterface; |
|
use FOS\ElasticaBundle\Provider\PagerProviderInterface; |
|
use Pagerfanta\Adapter\ArrayAdapter; |
|
use Pagerfanta\Pagerfanta; |
|
|
|
|
|
class ArticleProvider implements PagerProviderInterface |
|
{ |
|
|
|
public function __construct(private readonly EntityManagerInterface $entityManager) |
|
{ |
|
} |
|
|
|
public function provide(array $options = []): PagerInterface |
|
{ |
|
$articles = $this->entityManager->getRepository(Article::class)->findBy(['indexStatus' => IndexStatusEnum::TO_BE_INDEXED],['createdAt' => 'ASC'],200); |
|
return new PagerfantaPager(new Pagerfanta(new ArrayAdapter($articles))); |
|
} |
|
}
|
|
|