vendor/pimcore/pimcore/lib/Templating/Model/ViewModel.php line 19

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\Templating\Model;
  15. use Symfony\Component\HttpFoundation\ParameterBag;
  16. class ViewModel implements ViewModelInterface
  17. {
  18.     /**
  19.      * @var ParameterBag
  20.      */
  21.     protected $parameters;
  22.     /**
  23.      * @param array $parameters
  24.      */
  25.     public function __construct(array $parameters = [])
  26.     {
  27.         $this->initialize($parameters);
  28.     }
  29.     /**
  30.      * @param array $parameters
  31.      *
  32.      * @return $this
  33.      */
  34.     public function initialize(array $parameters = [])
  35.     {
  36.         $this->parameters = new ParameterBag($parameters);
  37.         return $this;
  38.     }
  39.     /**
  40.      * @return ParameterBag
  41.      */
  42.     public function getParameters()
  43.     {
  44.         return $this->parameters;
  45.     }
  46.     /**
  47.      * @return array
  48.      */
  49.     public function getAllParameters()
  50.     {
  51.         return $this->parameters->all();
  52.     }
  53.     /**
  54.      * @inheritDoc
  55.      */
  56.     public function get($key$default null)
  57.     {
  58.         return $this->getParameters()->get($key$default);
  59.     }
  60.     /**
  61.      * @inheritDoc
  62.      */
  63.     public function has($key)
  64.     {
  65.         return $this->parameters->has($key);
  66.     }
  67.     /**
  68.      * @param string $name
  69.      *
  70.      * @return mixed
  71.      */
  72.     public function __get($name)
  73.     {
  74.         return $this->parameters->get($namenull);
  75.     }
  76.     /**
  77.      * @param string $name
  78.      * @param mixed $value
  79.      */
  80.     public function __set($name$value)
  81.     {
  82.         $this->parameters->set($name$value);
  83.     }
  84.     /**
  85.      * @param string $name
  86.      *
  87.      * @return bool
  88.      */
  89.     public function __isset($name)
  90.     {
  91.         return $this->parameters->has($name);
  92.     }
  93.     /**
  94.      * @return \ArrayIterator
  95.      */
  96.     public function getIterator()
  97.     {
  98.         return $this->parameters->getIterator();
  99.     }
  100.     /**
  101.      * @return int
  102.      */
  103.     public function count()
  104.     {
  105.         return $this->parameters->count();
  106.     }
  107.     /**
  108.      * @param mixed $offset
  109.      *
  110.      * @return bool
  111.      */
  112.     public function offsetExists($offset)
  113.     {
  114.         return $this->parameters->has($offset);
  115.     }
  116.     /**
  117.      * @param mixed $offset
  118.      *
  119.      * @return mixed
  120.      */
  121.     public function offsetGet($offset)
  122.     {
  123.         return $this->parameters->get($offset);
  124.     }
  125.     /**
  126.      * @param mixed $offset
  127.      * @param mixed $value
  128.      */
  129.     public function offsetSet($offset$value)
  130.     {
  131.         $this->parameters->set($offset$value);
  132.     }
  133.     /**
  134.      * @param mixed $offset
  135.      */
  136.     public function offsetUnset($offset)
  137.     {
  138.         $this->parameters->remove($offset);
  139.     }
  140.     /**
  141.      * @inheritDoc
  142.      */
  143.     public function jsonSerialize()
  144.     {
  145.         return $this->parameters->all();
  146.     }
  147. }