Метод setInfo
Метод setInfo класса OptionsResolver добавляет
текстовое описание к конкретной опции. Это описание выводится
в тексте исключения, когда пользователь передаёт некорректное
значение или когда опция не проходит валидацию. Первым
параметром передаётся имя опции, вторым - строка с описанием.
Синтаксис
public function setInfo(string $option, string $info): static
Пример
Давайте зададим опцию mode с описанием и передадим
недопустимое значение, чтобы увидеть текст ошибки:
<?php
namespace AppService;
use SymfonyComponentOptionsResolverOptionsResolver;
class ArticleService
{
public function configure(): array
{
$resolver = new OptionsResolver();
$resolver->setDefault('mode', 'short');
$resolver->setAllowedValues('mode', ['short', 'full']);
$resolver->setInfo('mode', 'The display mode of the article.');
return $resolver->resolve(['mode' => 'unknown']);
}
}
?>
Результат выполнения кода:
SymfonyComponentOptionsResolverExceptionInvalidOptionsException:
The option "mode" with value "unknown" is invalid.
The display mode of the article.
Accepted values: "short", "full".
Пример
Давайте опишем несколько опций и проверим их через метод
isDefined:
<?php
namespace AppService;
use SymfonyComponentOptionsResolverOptionsResolver;
class ArticleService
{
public function configure(): array
{
$resolver = new OptionsResolver();
$resolver->setDefaults([
'limit' => 10,
'title' => 'hello',
]);
$resolver->setInfo('limit', 'The maximum number of articles.');
$resolver->setInfo('title', 'The title of the article.');
$res = [];
foreach (['limit', 'title', 'unknown'] as $option) {
$res[$option] = $resolver->isDefined($option);
}
return $res;
}
}
?>
Результат выполнения кода:
["limit" => true, "title" => true, "unknown" => false]
Смотрите также
-
класс
OptionsResolver,
который управляет конфигурацией опций -
метод
setDefaults,
который задаёт значения опций по умолчанию -
метод
setAllowedValues,
который ограничивает список допустимых значений опции -
метод
setDeprecated,
который помечает опцию как устаревшую