src/Parser/Parser.php
public function parse(string $internetMediaTypeString): ?InternetMediaTypeInterface
    {
        $inputString = trim($internetMediaTypeString);

        $internetMediaType = new InternetMediaType();

        try {
            $internetMediaType->setType($this->typeParser->parse($inputString));
            $internetMediaType->setSubtype($this->subtypeParser->parse($inputString));

            $parameterString = $this->createParameterString(
                $inputString,
                $internetMediaType->getType(),
                $internetMediaType->getSubtype()
            );
            $parameterStrings = $this->getParameterStrings($parameterString);

            $parameters = $this->getParameters($parameterStrings);

            foreach ($parameters as $parameter) {
                $internetMediaType->addParameter($parameter);
            }

            return $internetMediaType;
        } catch (TypeParserException $typeParserException) {
            throw new ParseException(
                $typeParserException->getMessage(),
                $typeParserException->getCode(),
                $inputString,
                $typeParserException
            );
        } catch (SubtypeParserException $subtypeParserException) {
            throw new ParseException(
                $subtypeParserException->getMessage(),
                $subtypeParserException->getCode(),
                $inputString,
                $subtypeParserException
            );
        } catch (AttributeParserException $attributeParserException) {
            throw new ParseException(
                $attributeParserException->getMessage(),
                $attributeParserException->getCode(),
                $inputString,
                $attributeParserException
            );
        }
    }
public function parse(string $internetMediaTypeString): ?InternetMediaTypeInterface
    {
        $inputString = trim($internetMediaTypeString);

        $internetMediaType = new InternetMediaType();

        try {
            $internetMediaType->setType($this->typeParser->parse($inputString));
            $internetMediaType->setSubtype($this->subtypeParser->parse($inputString));

            $parameterString = $this->createParameterString(
                $inputString,
                $internetMediaType->getType(),
                $internetMediaType->getSubtype()
            );
            $parameterStrings = $this->getParameterStrings($parameterString);

            $parameters = $this->getParameters($parameterStrings);

            foreach ($parameters as $parameter) {
                $internetMediaType->addParameter($parameter);
            }

            return $internetMediaType;
        } catch (TypeParserException $typeParserException) {
            throw new ParseException(
                $typeParserException->getMessage(),
                $typeParserException->getCode(),
                $inputString,
                $typeParserException
            );
        } catch (SubtypeParserException $subtypeParserException) {
            throw new ParseException(
                $subtypeParserException->getMessage(),
                $subtypeParserException->getCode(),
                $inputString,
                $subtypeParserException
            );
        } catch (AttributeParserException $attributeParserException) {
            throw new ParseException(
                $attributeParserException->getMessage(),
                $attributeParserException->getCode(),
                $inputString,
                $attributeParserException
            );
        }
    }
@param string $internetMediaTypeString

@return InternetMediaTypeInterface|null

@throws ParseException