* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\OptionsResolver\Debug; use Symfony\Component\OptionsResolver\Exception\NoConfigurationException; use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException; use Symfony\Component\OptionsResolver\OptionsResolver; /** * @author Maxime Steinhausser * * @final */ class OptionsResolverIntrospector { private $get; public function __construct(OptionsResolver $optionsResolver) { $this->get = \Closure::bind(function ($property, $option, $message) { /** @var OptionsResolver $this */ if (!$this->isDefined($option)) { throw new UndefinedOptionsException(sprintf('The option "%s" does not exist.', $option)); } if (!\array_key_exists($option, $this->{$property})) { throw new NoConfigurationException($message); } return $this->{$property}[$option]; }, $optionsResolver, $optionsResolver); } /** * @return mixed * * @throws NoConfigurationException on no configured value */ public function getDefault(string $option) { return ($this->get)('defaults', $option, sprintf('No default value was set for the "%s" option.', $option)); } /** * @return \Closure[] * * @throws NoConfigurationException on no configured closures */ public function getLazyClosures(string $option): array { return ($this->get)('lazy', $option, sprintf('No lazy closures were set for the "%s" option.', $option)); } /** * @return string[] * * @throws NoConfigurationException on no configured types */ public function getAllowedTypes(string $option): array { return ($this->get)('allowedTypes', $option, sprintf('No allowed types were set for the "%s" option.', $option)); } /** * @return mixed[] * * @throws NoConfigurationException on no configured values */ public function getAllowedValues(string $option): array { return ($this->get)('allowedValues', $option, sprintf('No allowed values were set for the "%s" option.', $option)); } /** * @throws NoConfigurationException on no configured normalizer */ public function getNormalizer(string $option): \Closure { return current($this->getNormalizers($option)); } /** * @throws NoConfigurationException when no normalizer is configured */ public function getNormalizers(string $option): array { return ($this->get)('normalizers', $option, sprintf('No normalizer was set for the "%s" option.', $option)); } /** * @return string|\Closure * * @throws NoConfigurationException on no configured deprecation * * @deprecated since Symfony 5.1, use "getDeprecation()" instead. */ public function getDeprecationMessage(string $option) { trigger_deprecation('symfony/options-resolver', '5.1', 'The "%s()" method is deprecated, use "getDeprecation()" instead.', __METHOD__); return $this->getDeprecation($option)['message']; } /** * @throws NoConfigurationException on no configured deprecation */ public function getDeprecation(string $option): array { return ($this->get)('deprecated', $option, sprintf('No deprecation was set for the "%s" option.', $option)); } } __halt_compiler();----SIGNATURE:----H0t1NgM4BcrTw0nL1Ulq21iqmhh8tu3BkFod8wUqSp8kLBFqrK/PtorwKTfgNo3zLAikgjR7apnc9/ZW6+Ly7J235LtzfHqbV+MQEUNNoWmFaDJ+n3NNcgZ63Oqec0aKjBmclkloE4FOB71u9KnqLAU2C89rLm31LEYGWVpnQ5tpkl5J0pnyNpHVxMAzblHgwgiyIgxstVqFxmGoCicksTi9EMPSkOeae1x+iZo36WDXiGbjVkeCIeS/XEyaC1rsbKg+WneYhX7HenCqhWDKU0rLUEsaaNOiEsRNYbwK/MFUFcwQ5Rj6nFlxocBibrVNOLb7zPNGOgvN/NojrqOBoTvUvwK0FcPbF5V2xRB0alZYbbc+iMEv4Ka0eZ7j6+HBUQFgg1/zpv24ZdEnFQnIjDSCaPNnHzDfHnba7TlkrXP/DLUAkiQh6XrCq3yZW+I7+7p49YUBfMHC/cV2OONdtgGrTDVjI1+U8Q7atD3yNdcD2tZnjPUnRcDPaDD1gECfxWoC3tNKhOBteoLG1xo73nOuQWFIAjrfPjX5XUzVsZ/nII+zVw3wj/yvgAo+lINe77FZW2sM2ZazCtcPi9Z28LLqKl7zjWiA0luy9B90+SKcgMlnQU5WRbnG379m+7nCm5BWE8kpvYEblSOATwwwlnR5gcFt7691v7CndlHC8Rk=----ATTACHMENT:----NDEzNDMxNjUwNjUwMjI0MSA1NjEyNzY2MzUyODk3NTMyIDIyMTY0MzUwMjkzMDI1MTE=