vendor/sylius/resource-bundle/src/Bundle/Grid/View/ResourceGridViewFactory.php line 46

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Sylius package.
  4.  *
  5.  * (c) Paweł Jędrzejewski
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace Sylius\Bundle\ResourceBundle\Grid\View;
  12. use Sylius\Bundle\ResourceBundle\Controller\ParametersParserInterface;
  13. use Sylius\Bundle\ResourceBundle\Controller\RequestConfiguration;
  14. use Sylius\Component\Grid\Data\DataProviderInterface;
  15. use Sylius\Component\Grid\Definition\Grid;
  16. use Sylius\Component\Grid\Parameters;
  17. use Sylius\Component\Resource\Metadata\MetadataInterface;
  18. final class ResourceGridViewFactory implements ResourceGridViewFactoryInterface
  19. {
  20.     /** @var DataProviderInterface */
  21.     private $dataProvider;
  22.     /** @var ParametersParserInterface */
  23.     private $parametersParser;
  24.     public function __construct(DataProviderInterface $dataProviderParametersParserInterface $parametersParser)
  25.     {
  26.         $this->dataProvider $dataProvider;
  27.         $this->parametersParser $parametersParser;
  28.     }
  29.     public function create(
  30.         Grid $grid,
  31.         Parameters $parameters,
  32.         MetadataInterface $metadata,
  33.         RequestConfiguration $requestConfiguration
  34.     ): ResourceGridView {
  35.         $driverConfiguration $grid->getDriverConfiguration();
  36.         $request $requestConfiguration->getRequest();
  37.         $grid->setDriverConfiguration($this->parametersParser->parseRequestValues($driverConfiguration$request));
  38.         return new ResourceGridView($this->dataProvider->getData($grid$parameters), $grid$parameters$metadata$requestConfiguration);
  39.     }
  40. }