/** * Predicate that determines whether the requested accept * types match this mime type. * * @param Request $request the request object to check * * @return bool true if the accept header matches */ public function matchAcceptTypes(Request $request) { $acceptTypes = $request->getPreferredAcceptTypes(); foreach ($acceptTypes as $preferredType) { $preferredString = $preferredType['type']; if (!empty($preferredType['subType'])) { $preferredString .= '/' . $preferredType['subType']; } if (!empty($preferredType['baseType'])) { $preferredString .= '+' . $preferredType['baseType']; } foreach ($this->mimeTypes as $type) { if (strcasecmp($type, $preferredString) === 0) { return true; } } } return false; }