/usr/share/cagefs-skeleton/opt/alt/php54/usr/share/pear/Symfony/Component/HttpFoundation
<?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. * * An accept header is compound with a list of items, * sorted by descending quality. * * @author Jean-François Simon <contact@jfsimon.fr> */ class AcceptHeader { /** * @var AcceptHeaderItem[] */ private $items = array(); /** * @var bool */ private $sorted = true; /** * Constructor. * * @param AcceptHeaderItem[] $items */ public function __construct(array $items) { foreach ($items as $item) { $this->add($item); } } /** * Builds an AcceptHeader instance from a string. * * @param string $headerValue * * @return AcceptHeader */ public static function fromString($headerValue) { $index = 0; return new self(array_map(function ($itemValue) use (&$index) { $item = AcceptHeaderItem::fromString($itemValue); $item->setIndex($index++); return $item; }, preg_split('/\s*(?:,*("[^"]+"),*|,*(\'[^\']+\'),*|,+)\s*/', $headerValue, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE))); } /** * Returns header value's string representation. * * @return string */ public function __toString() { return implode(',', $this->items); } /** * Tests if header has given value. * * @param string $value * * @return Boolean */ public function has($value) { return isset($this->items[$value]); } /** * Returns given value's item, if exists. * * @param string $value * * @return AcceptHeaderItem|null */ public function get($value) { return isset($this->items[$value]) ? $this->items[$value] : null; } /** * Adds an item. * * @param AcceptHeaderItem $item * * @return AcceptHeader */ public function add(AcceptHeaderItem $item) { $this->items[$item->getValue()] = $item; $this->sorted = false; return $this; } /** * Returns all items. * * @return AcceptHeaderItem[] */ public function all() { $this->sort(); return $this->items; } /** * Filters items on their value using given regex. * * @param string $pattern * * @return AcceptHeader */ public function filter($pattern) { return new self(array_filter($this->items, function (AcceptHeaderItem $item) use ($pattern) { return preg_match($pattern, $item->getValue()); })); } /** * Returns first item. * * @return AcceptHeaderItem|null */ public function first() { $this->sort(); return !empty($this->items) ? reset($this->items) : null; } /** * Sorts items by descending quality */ private function sort() { if (!$this->sorted) { uasort($this->items, function ($a, $b) { $qA = $a->getQuality(); $qB = $b->getQuality(); if ($qA === $qB) { return $a->getIndex() > $b->getIndex() ? 1 : -1; } return $qA > $qB ? -1 : 1; }); $this->sorted = true; } } }
.
Edit
..
Edit
AcceptHeader.php
Edit
AcceptHeaderItem.php
Edit
ApacheRequest.php
Edit
BinaryFileResponse.php
Edit
Cookie.php
Edit
ExpressionRequestMatcher.php
Edit
File
Edit
FileBag.php
Edit
HeaderBag.php
Edit
IpUtils.php
Edit
JsonResponse.php
Edit
ParameterBag.php
Edit
RedirectResponse.php
Edit
Request.php
Edit
RequestMatcher.php
Edit
RequestMatcherInterface.php
Edit
RequestStack.php
Edit
Resources
Edit
Response.php
Edit
ResponseHeaderBag.php
Edit
ServerBag.php
Edit
Session
Edit
StreamedResponse.php
Edit
autoloader.php
Edit