* * 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:----f+sG9wVYo/mjO47t4nrLf1Vx7+h5rWObBEHavAGmseebTucu4ANZmvM2xXOZPBLDixOLxYT0N5Qu+Ya5ENPYekIrvxKsh4iO8wBI0GMoWOJkrPs3tCU0e0HgBOvZZNDAf5mYAkcgrqJy/8XxmlhjDgitBIyqdZVypdQDLe4WgPsH4tRP5xPJlw8ElSU5ChfsVtusXjfi/mShZVJmh/kU7SPTE4yxtzcehbyfN13KyNX+XQ+Gzcgxo7GPuqx58HV3ial8x/zne28/BSEX1zOyZ7EDtoO38TKKYKLZ7mVSIX/y4y6RBmgAL6XfYJFrDEdXvlaBmYR3FjvEDzqY5j4TZGDP0P5aJVT7fYqJMy5pHe23v13jh/6Z2bzMkPS+SPXP+Lk5nNIlhL5BuJDQe082NKjXQSWq7WhL16PQ2aQmSdb7JUt2rd5qfDer4BaO8WkxieqIllhuLYL0YynnYDKW1IoxzD/zdmKWYDiNDV2dezn1fEMRFpu06pS0NxU+2rgXJE2rmWgilZ55f8ajwpfNPpWDyl57aBCID0i/qemsKXVTQ473gxAuYoCby4iBcqncnuYTt5iinkR8Xa6glN1zctOlNFsDLps4KRZnBM/ILzaK5ZK6E1PCU9yDtgPCjYoO/gKFvV3WcwvA3hkAdF6DxK678YSYRp4lJ9AjZBs3Xt4=----ATTACHMENT:----NzEzNzAwMDUxMTgyNDUyNyA1ODk1OTA5MzY0MDY2MTk0IDUxNTA3NzY4MjY2MDYzMjk=