РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1032 of 1361 menu

Метод setRequired

Метод setRequired класса OptionsResolver помечает указанную опцию как обязательную. Если при вызове метода resolve обязательная опция не была передана, Symfony выбросит исключение MissingOptionsException. Это удобно использовать для параметров, без которых работа функции или сервиса невозможна.

Первым параметром метод принимает имя опции, которую нужно сделать обязательной. Можно передать как одну строку, так и массив строк, чтобы пометить сразу несколько опций.

Синтаксис

<?php public function setRequired(string|array $option): static ?>

Пример

Давайте создадим объект OptionsResolver и поместим опцию name как обязательную:

<?php namespace AppService; use SymfonyComponentOptionsResolverOptionsResolver; class ArticleService { public function handle(array $options): array { $resolver = new OptionsResolver(); $resolver->setRequired('name'); $res = $resolver->resolve($options); return $res; } } ?>

Вызовем метод handle с корректными данными:

<?php $service = new ArticleService(); $res = $service->handle(['name' => 'article']); print_r($res); ?>

Результат выполнения кода:

["name" => "article"]

Пример

А теперь вызовем метод handle без обязательной опции name и получим исключение:

<?php $service = new ArticleService(); $res = $service->handle([]); print_r($res); ?>

Результат выполнения кода:

The required option "name" is missing.

Пример

Метод setRequired умеет принимать массив имён, чтобы пометить несколько опций сразу:

<?php namespace AppService; use SymfonyComponentOptionsResolverOptionsResolver; class ArticleService { public function handle(array $options): array { $resolver = new OptionsResolver(); $resolver->setRequired(['name', 'text']); $res = $resolver->resolve($options); return $res; } } ?>

Вызовем метод handle с двумя обязательными опциями:

<?php $service = new ArticleService(); $res = $service->handle([ 'name' => 'article', 'text' => 'abcde', ]); print_r($res); ?>

Результат выполнения кода:

["name" => "article", "text" => "abcde"]

Смотрите также

  • класс OptionsResolver,
    который управляет опциями конфигурации
  • метод setDefaults,
    который задаёт значения по умолчанию
  • метод setDefined,
    который разрешает использовать опцию
  • метод isRequired,
    который проверяет, обязательна ли опция
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить