Negotiation\Negotiator::match PHP Method

match() protected method

protected match ( negotiation\AcceptHeader $accept, negotiation\AcceptHeader $priority, $index )
$accept negotiation\AcceptHeader
$priority negotiation\AcceptHeader
    protected function match(AcceptHeader $accept, AcceptHeader $priority, $index)
    {
        if (!$accept instanceof Accept || !$priority instanceof Accept) {
            return null;
        }
        $ab = $accept->getBasePart();
        $pb = $priority->getBasePart();
        $as = $accept->getSubPart();
        $ps = $priority->getSubPart();
        $intersection = array_intersect_assoc($accept->getParameters(), $priority->getParameters());
        $baseEqual = !strcasecmp($ab, $pb);
        $subEqual = !strcasecmp($as, $ps);
        if (($ab === '*' || $baseEqual) && ($as === '*' || $subEqual) && count($intersection) === count($accept->getParameters())) {
            $score = 100 * $baseEqual + 10 * $subEqual + count($intersection);
            return new Match($accept->getQuality() * $priority->getQuality(), $score, $index);
        }
        return null;
    }