sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							191 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							191 lines
						
					
					
						
							3.6 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * This file is part of the Symfony package.
							 | 
						|
								 *
							 | 
						|
								 * (c) Fabien Potencier <fabien@symfony.com>
							 | 
						|
								 *
							 | 
						|
								 * For the full copyright and license information, please view the LICENSE
							 | 
						|
								 * file that was distributed with this source code.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Symfony\Component\HttpFoundation;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * Represents an Accept-* header item.
							 | 
						|
								 *
							 | 
						|
								 * @author Jean-François Simon <contact@jfsimon.fr>
							 | 
						|
								 */
							 | 
						|
								class AcceptHeaderItem
							 | 
						|
								{
							 | 
						|
								    private $value;
							 | 
						|
								    private $quality = 1.0;
							 | 
						|
								    private $index = 0;
							 | 
						|
								    private $attributes = [];
							 | 
						|
								
							 | 
						|
								    public function __construct(string $value, array $attributes = [])
							 | 
						|
								    {
							 | 
						|
								        $this->value = $value;
							 | 
						|
								        foreach ($attributes as $name => $value) {
							 | 
						|
								            $this->setAttribute($name, $value);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Builds an AcceptHeaderInstance instance from a string.
							 | 
						|
								     *
							 | 
						|
								     * @param string $itemValue
							 | 
						|
								     *
							 | 
						|
								     * @return self
							 | 
						|
								     */
							 | 
						|
								    public static function fromString($itemValue)
							 | 
						|
								    {
							 | 
						|
								        $parts = HeaderUtils::split($itemValue, ';=');
							 | 
						|
								
							 | 
						|
								        $part = array_shift($parts);
							 | 
						|
								        $attributes = HeaderUtils::combine($parts);
							 | 
						|
								
							 | 
						|
								        return new self($part[0], $attributes);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns header value's string representation.
							 | 
						|
								     *
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    public function __toString()
							 | 
						|
								    {
							 | 
						|
								        $string = $this->value.($this->quality < 1 ? ';q='.$this->quality : '');
							 | 
						|
								        if (\count($this->attributes) > 0) {
							 | 
						|
								            $string .= '; '.HeaderUtils::toString($this->attributes, ';');
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        return $string;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Set the item value.
							 | 
						|
								     *
							 | 
						|
								     * @param string $value
							 | 
						|
								     *
							 | 
						|
								     * @return $this
							 | 
						|
								     */
							 | 
						|
								    public function setValue($value)
							 | 
						|
								    {
							 | 
						|
								        $this->value = $value;
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns the item value.
							 | 
						|
								     *
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    public function getValue()
							 | 
						|
								    {
							 | 
						|
								        return $this->value;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Set the item quality.
							 | 
						|
								     *
							 | 
						|
								     * @param float $quality
							 | 
						|
								     *
							 | 
						|
								     * @return $this
							 | 
						|
								     */
							 | 
						|
								    public function setQuality($quality)
							 | 
						|
								    {
							 | 
						|
								        $this->quality = $quality;
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns the item quality.
							 | 
						|
								     *
							 | 
						|
								     * @return float
							 | 
						|
								     */
							 | 
						|
								    public function getQuality()
							 | 
						|
								    {
							 | 
						|
								        return $this->quality;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Set the item index.
							 | 
						|
								     *
							 | 
						|
								     * @param int $index
							 | 
						|
								     *
							 | 
						|
								     * @return $this
							 | 
						|
								     */
							 | 
						|
								    public function setIndex($index)
							 | 
						|
								    {
							 | 
						|
								        $this->index = $index;
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns the item index.
							 | 
						|
								     *
							 | 
						|
								     * @return int
							 | 
						|
								     */
							 | 
						|
								    public function getIndex()
							 | 
						|
								    {
							 | 
						|
								        return $this->index;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Tests if an attribute exists.
							 | 
						|
								     *
							 | 
						|
								     * @param string $name
							 | 
						|
								     *
							 | 
						|
								     * @return bool
							 | 
						|
								     */
							 | 
						|
								    public function hasAttribute($name)
							 | 
						|
								    {
							 | 
						|
								        return isset($this->attributes[$name]);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns an attribute by its name.
							 | 
						|
								     *
							 | 
						|
								     * @param string $name
							 | 
						|
								     * @param mixed  $default
							 | 
						|
								     *
							 | 
						|
								     * @return mixed
							 | 
						|
								     */
							 | 
						|
								    public function getAttribute($name, $default = null)
							 | 
						|
								    {
							 | 
						|
								        return isset($this->attributes[$name]) ? $this->attributes[$name] : $default;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns all attributes.
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    public function getAttributes()
							 | 
						|
								    {
							 | 
						|
								        return $this->attributes;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Set an attribute.
							 | 
						|
								     *
							 | 
						|
								     * @param string $name
							 | 
						|
								     * @param string $value
							 | 
						|
								     *
							 | 
						|
								     * @return $this
							 | 
						|
								     */
							 | 
						|
								    public function setAttribute($name, $value)
							 | 
						|
								    {
							 | 
						|
								        if ('q' === $name) {
							 | 
						|
								            $this->quality = (float) $value;
							 | 
						|
								        } else {
							 | 
						|
								            $this->attributes[$name] = (string) $value;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        return $this;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |