for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Sylius package.
*
* (c) Paweł Jędrzejewski
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Sylius\Bundle\ResourceBundle\Controller;
use Sylius\Component\Resource\Repository\RepositoryInterface;
final class ResourcesResolver implements ResourcesResolverInterface
{
/**
* {@inheritdoc}
public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
$method = $requestConfiguration->getRepositoryMethod();
if (null !== $method) {
if (is_array($method) && 2 === count($method)) {
$repository = $method[0];
$method = $method[1];
}
$arguments = array_values($requestConfiguration->getRepositoryArguments());
return $repository->$method(...$arguments);
$criteria = [];
if ($requestConfiguration->isFilterable()) {
$criteria = $requestConfiguration->getCriteria();
$sorting = [];
if ($requestConfiguration->isSortable()) {
$sorting = $requestConfiguration->getSorting();
if ($requestConfiguration->isPaginated()) {
return $repository->createPaginator($criteria, $sorting);
return $repository->findBy($criteria, $sorting, $requestConfiguration->getLimit());