<?php/** * Pimcore * * This source file is available under two different licenses: * - GNU General Public License version 3 (GPLv3) * - Pimcore Enterprise License (PEL) * Full copyright and license information is available in * LICENSE.md which is distributed with this source code. * * @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org) * @license http://www.pimcore.org/license GPLv3 and PEL */namespace Pimcore\Templating\Model;use Symfony\Component\HttpFoundation\ParameterBag;class ViewModel implements ViewModelInterface{ /** * @var ParameterBag */ protected $parameters; /** * @param array $parameters */ public function __construct(array $parameters = []) { $this->initialize($parameters); } /** * @param array $parameters * * @return $this */ public function initialize(array $parameters = []) { $this->parameters = new ParameterBag($parameters); return $this; } /** * @return ParameterBag */ public function getParameters() { return $this->parameters; } /** * @return array */ public function getAllParameters() { return $this->parameters->all(); } /** * @inheritDoc */ public function get($key, $default = null) { return $this->getParameters()->get($key, $default); } /** * @inheritDoc */ public function has($key) { return $this->parameters->has($key); } /** * @param string $name * * @return mixed */ public function __get($name) { return $this->parameters->get($name, null); } /** * @param string $name * @param mixed $value */ public function __set($name, $value) { $this->parameters->set($name, $value); } /** * @param string $name * * @return bool */ public function __isset($name) { return $this->parameters->has($name); } /** * @return \ArrayIterator */ public function getIterator() { return $this->parameters->getIterator(); } /** * @return int */ public function count() { return $this->parameters->count(); } /** * @param mixed $offset * * @return bool */ public function offsetExists($offset) { return $this->parameters->has($offset); } /** * @param mixed $offset * * @return mixed */ public function offsetGet($offset) { return $this->parameters->get($offset); } /** * @param mixed $offset * @param mixed $value */ public function offsetSet($offset, $value) { $this->parameters->set($offset, $value); } /** * @param mixed $offset */ public function offsetUnset($offset) { $this->parameters->remove($offset); } /** * @inheritDoc */ public function jsonSerialize() { return $this->parameters->all(); }}