private function setNormalizers() { $this->resolver->setNormalizer(CO::ANNOTATION_GROUPS, function (Options $options, $value) { $value = (array) $value; if ($options[CO::DEPRECATED]) { $value[] = CO::DEPRECATED; } if ($options[CO::TODO]) { $value[] = CO::TODO; } return array_unique($value); }); $this->resolver->setNormalizer(CO::DESTINATION, function (Options $options, $value) { return $this->fileSystem->getAbsolutePath($value); }); $this->resolver->setNormalizer(CO::BASE_URL, function (Options $options, $value) { return rtrim($value, '/'); }); $this->resolver->setNormalizer(CO::SOURCE, function (Options $options, $value) { if (!is_array($value)) { $value = [$value]; } foreach ($value as $key => $source) { $value[$key] = $this->fileSystem->getAbsolutePath($source); } return $value; }); $this->resolver->setNormalizer(CO::SOURCE_CODE, function (Options $options) { return !$options[CO::NO_SOURCE_CODE]; }); $this->resolver->setNormalizer(CO::TEMPLATE_CONFIG, function (Options $options, $value) { return $this->fileSystem->getAbsolutePath($value); }); }