/** * @param AbstractContext $context */ protected function prepareContext(AbstractContext $context) { //defaults $context->setParsers([new StringParser(), new BooleanParser(), new IntegerParser(), new FloatParser(), new DateTimeParser(), new ArrayParser(), new ObjectParser($context)]); //add custom parsers foreach ($this->getParsers() as $parser) { if ($parser instanceof ValueParserInterface) { $context->prependParser($parser); } } //disable parsers foreach ($this->getDisabledParsers() as $disabledParser) { $actualParsers = $context->getParsers(); if (array_key_exists($disabledParser, $actualParsers)) { unset($actualParsers[$disabledParser]); } $context->setParsers($actualParsers); } }