vendor/pimcore/pimcore/lib/Controller/Configuration/ResponseHeader.php line 31

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * Pimcore
  5.  *
  6.  * This source file is available under two different licenses:
  7.  * - GNU General Public License version 3 (GPLv3)
  8.  * - Pimcore Commercial License (PCL)
  9.  * Full copyright and license information is available in
  10.  * LICENSE.md which is distributed with this source code.
  11.  *
  12.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  13.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  14.  */
  15. namespace Pimcore\Controller\Configuration;
  16. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationAnnotation;
  17. /**
  18.  * Allows to set HTTP headers on the response via annotation. The annotation will
  19.  * be processed by ResponseHeaderListener which will set the HTTP headers on the
  20.  * response.
  21.  *
  22.  * See ResponseHeaderBag for documentation on the fields.
  23.  *
  24.  * @Annotation
  25.  */
  26. class ResponseHeader extends ConfigurationAnnotation
  27. {
  28.     /**
  29.      * @var string
  30.      */
  31.     protected $key;
  32.     /**
  33.      * @var string|array
  34.      */
  35.     protected $values;
  36.     /**
  37.      * @var bool
  38.      */
  39.     protected $replace false;
  40.     /**
  41.      * @param array $data
  42.      */
  43.     public function __construct(array $data)
  44.     {
  45.         // value is the default key if annotation was called without assignment
  46.         // e.g. @ResponseHeader("X-Foo") instead of @ResponseHeader(key="X-Foo")
  47.         if (isset($data['value'])) {
  48.             $data['key'] = $data['value'];
  49.             unset($data['value']);
  50.         }
  51.         parent::__construct($data);
  52.         if (empty($this->key)) {
  53.             throw new \InvalidArgumentException('The @ResponseHeaderAnnotation needs at least a key to be set');
  54.         }
  55.     }
  56.     /**
  57.      * {@inheritdoc}
  58.      */
  59.     public function getAliasName(): string
  60.     {
  61.         return 'response_header';
  62.     }
  63.     /**
  64.      * {@inheritdoc}
  65.      */
  66.     public function allowArray(): bool
  67.     {
  68.         return true;
  69.     }
  70.     /**
  71.      * @return string
  72.      */
  73.     public function getKey(): string
  74.     {
  75.         return $this->key;
  76.     }
  77.     /**
  78.      * @param string $key
  79.      */
  80.     public function setKey(string $key)
  81.     {
  82.         $this->key $key;
  83.     }
  84.     /**
  85.      * @return array|string
  86.      */
  87.     public function getValues()
  88.     {
  89.         return $this->values;
  90.     }
  91.     /**
  92.      * @param array|string $values
  93.      */
  94.     public function setValues($values)
  95.     {
  96.         $this->values $values;
  97.     }
  98.     /**
  99.      * @return bool
  100.      */
  101.     public function getReplace(): bool
  102.     {
  103.         return $this->replace;
  104.     }
  105.     /**
  106.      * @param bool $replace
  107.      */
  108.     public function setReplace(bool $replace)
  109.     {
  110.         $this->replace $replace;
  111.     }
  112. }