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

Метод setDefault класса OptionsResolver

Метод setDefault класса OptionsResolver устанавливает значение по умолчанию для одного параметра. Первым параметром передаётся имя опции, вторым - её значение по умолчанию. Если пользователь не передаст эту опцию при вызове метода resolve, будет использовано указанное значение.

Синтаксис

public function setDefault(string $option, mixed $value): static

Пример

Давайте зададим значение по умолчанию для опции name:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configure(): array { $resolver = new OptionsResolver(); $resolver->setDefault('name', 'article'); $resolver->setDefault('count', 5); return $resolver->resolve(); } } ?>

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

["name" => "article", "count" => 5]

Пример

Если опция передана пользователем, значение по умолчанию переопределяется:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configure(): array { $resolver = new OptionsResolver(); $resolver->setDefault('name', 'article'); $resolver->setDefault('count', 5); return $resolver->resolve(['name' => 'hello']); } } ?>

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

["name" => "hello", "count" => 5]

Пример

Значением по умолчанию может быть замыкание, которое вычислит его лениво:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configure(): array { $resolver = new OptionsResolver(); $resolver->setDefault('user', function (OptionsResolver $resolver): void { $resolver->setDefault('name', 'abcde'); $resolver->setDefault('active', true); }); return $resolver->resolve(); } } ?>

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

["user" => ["name" => "abcde", "active" => true]]

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

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