Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 protected function match(AcceptHeader $acceptLanguage, AcceptHeader $priority, $index)
 {
     if (!$acceptLanguage instanceof AcceptLanguage || !$priority instanceof AcceptLanguage) {
         return null;
     }
     $ab = $acceptLanguage->getBasePart();
     $pb = $priority->getBasePart();
     $as = $acceptLanguage->getSubPart();
     $ps = $priority->getSubPart();
     $baseEqual = !strcasecmp($ab, $pb);
     $subEqual = !strcasecmp($as, $ps);
     if (($ab == '*' || $baseEqual) && ($as === null || $subEqual)) {
         $score = 10 * $baseEqual + $subEqual;
         return new Match($acceptLanguage->getQuality() * $priority->getQuality(), $score, $index);
     }
     return null;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 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;
 }