vendor/pimcore/pimcore/lib/Http/Request/Resolver/ViewModelResolver.php line 53

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Enterprise License (PEL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  * @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  * @license    http://www.pimcore.org/license     GPLv3 and PEL
  13.  */
  14. namespace Pimcore\Http\Request\Resolver;
  15. use Pimcore\Templating\Model\ViewModel;
  16. use Pimcore\Templating\Model\ViewModelInterface;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpFoundation\RequestStack;
  19. /**
  20.  * @deprecated
  21.  */
  22. class ViewModelResolver extends AbstractRequestResolver
  23. {
  24.     const ATTRIBUTE_VIEW_MODEL '_view_model';
  25.     /**
  26.      * @var TemplateVarsResolver
  27.      */
  28.     protected $templateVarsResolver;
  29.     /**
  30.      * @param RequestStack $requestStack
  31.      * @param TemplateVarsResolver $templateVarsResolver
  32.      */
  33.     public function __construct(RequestStack $requestStackTemplateVarsResolver $templateVarsResolver)
  34.     {
  35.         parent::__construct($requestStack);
  36.         $this->templateVarsResolver $templateVarsResolver;
  37.     }
  38.     /**
  39.      * Get or create view model
  40.      *
  41.      * @param Request|null $request
  42.      * @param bool $create
  43.      *
  44.      * @return ViewModel|ViewModelInterface|null
  45.      */
  46.     public function getViewModel(Request $request null$create true)
  47.     {
  48.         if (null === $request) {
  49.             $request $this->getCurrentRequest();
  50.         }
  51.         if ($request->attributes->has(static::ATTRIBUTE_VIEW_MODEL)) {
  52.             return $request->attributes->get(static::ATTRIBUTE_VIEW_MODEL);
  53.         }
  54.         if (!$create) {
  55.             return null;
  56.         }
  57.         $viewModel $this->createViewModel($request);
  58.         $this->setViewModel($request$viewModel);
  59.         return $viewModel;
  60.     }
  61.     /**
  62.      * Create a view model
  63.      *
  64.      * @param Request|null $request
  65.      *
  66.      * @return ViewModel
  67.      */
  68.     public function createViewModel(Request $request null)
  69.     {
  70.         @trigger_error(sprintf('Class "%s" is deprecated since v6.8.0 and will be removed in Pimcore 7.'ViewModel::class), E_USER_DEPRECATED);
  71.         if (null === $request) {
  72.             $request $this->getCurrentRequest();
  73.         }
  74.         $vars $this->templateVarsResolver->getTemplateVars($request);
  75.         $viewModel = new ViewModel($vars);
  76.         return $viewModel;
  77.     }
  78.     /**
  79.      * Set view model on request
  80.      *
  81.      * @param Request $request
  82.      * @param ViewModelInterface $viewModel
  83.      */
  84.     public function setViewModel(Request $requestViewModelInterface $viewModel)
  85.     {
  86.         $request->attributes->set(static::ATTRIBUTE_VIEW_MODEL$viewModel);
  87.     }
  88. }