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

Метод setDeprecated

Метод setDeprecated класса OptionsResolver помечает опцию как устаревшую. Первым параметром передаётся имя опции, вторым - сообщение с предупреждением, которое будет показано при использовании этой опции. Третьим необязательным параметром можно передать версию, в которой опция будет удалена.

Когда пользователь передаёт устаревшую опцию в resolve, Symfony генерирует предупреждение об устаревании с указанным сообщением. Это позволяет заранее предупредить разработчиков о том, что опция больше не поддерживается и будет удалена в будущих версиях.

Синтаксис

<?php public function setDeprecated( string $option, string $message = '', string $version = '' ): static ?>

Пример

Давайте создадим OptionsResolver и пометим опцию old_option как устаревшую:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configureOptions(): array { $resolver = new OptionsResolver(); $resolver->setDefaults([ 'old_option' => 'abcde', 'new_option' => 'hello', ]); $resolver->setDeprecated( 'old_option', 'Опция "old_option" устарела, используйте "new_option".' ); return $resolver->resolve(['old_option' => 'article']); } } ?>

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

["old_option" => "article", "new_option" => "hello"]

При этом в лог будет записано предупреждение об устаревании с указанным сообщением.

Пример

Давайте укажем версию, в которой опция будет удалена:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configureOptions(): array { $resolver = new OptionsResolver(); $resolver->setDefaults([ 'legacy_mode' => false, 'mode' => 'default', ]); $resolver->setDeprecated( 'legacy_mode', 'Опция "legacy_mode" устарела, используйте "mode".', '2.0' ); return $resolver->resolve(['legacy_mode' => true]); } } ?>

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

["legacy_mode" => true, "mode" => "default"]

В предупреждении будет указано, что опция будет удалена в версии 2.0.

Пример

Давайте пометим несколько опций как устаревшие одновременно:

<?php namespace App\Service; use Symfony\Component\OptionsResolver\OptionsResolver; class ArticleService { public function configureOptions(): array { $resolver = new OptionsResolver(); $resolver->setDefaults([ 'old_title' => 'abcde', 'old_text' => 'article', 'title' => 'hello', 'text' => 'user', ]); $resolver->setDeprecated( 'old_title', 'Опция "old_title" устарела, используйте "title".' ); $resolver->setDeprecated( 'old_text', 'Опция "old_text" устарела, используйте "text".' ); return $resolver->resolve([ 'old_title' => 'new title', 'old_text' => 'new text', ]); } } ?>

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

["old_title" => "new title", "old_text" => "new text", "title" => "hello", "text" => "user"]

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

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