Новое в Symfony 6.4: Профилировщик команд

Источник: «New in Symfony 6.4: Command Profiler»
Symfony 6.4 включает новый профилировщик команд, позволяющий собирать информацию о выполняемых командах в процессе их выполнения, чтобы впоследствии можно было отладить возникшие проблемы.

Это первая статья из цикла, рассказывающего о наиболее важных новых возможностях, появившихся в версиях Symfony 6.4 и 7.0.

Symfony 6.4 и Symfony 7.0 выйдут одновременно в конце ноября 2023 года. Согласно процессу релизов Symfony, обе версии будут иметь одинаковые возможности, но Symfony 7.0 не будет включать устаревшие (deprecated) функции.

Профилировщик Symfony — одна из любимых функций Symfony большинства разработчиков. Он собирает всю информацию о HTTP-запросах, чтобы вы могли проанализировать эти данные при отладке проблем. В Symfony 6.4 (и 7.0) мы улучшаем профилировщик, чтобы вы также могли профилировать консольные команды.

Для этого при выполнении любой команды добавьте опцию --profile (которая автоматически определяется Symfony во всех командах, включая вашу):

php bin/console --profile app:my-command

Если в приложении включён режим отладки, то Symfony будет собирать информацию, связанную с командой, в процессе её выполнения. Когда команда завершится (или будет прервана каким-либо сигналом), вы сможете увидеть её профиль в том же Symfony Profiler, который вы используете для HTTP-запросов.

Примечание. Если выполнить команду в режиме полной информации (-v), то Symfony отобразит в выводе кликабельную ссылку на профиль команды (если ваш терминал поддерживает ссылки). Если выполнить команду в отладочном режиме (-vvv), то также будет показано время и память, потребляемые командой.

Дизайн профилировщика команд похож на существующий профилировщик HTTP, но мы адаптировали некоторые элементы для лучшего соответствия командам:

Профилировщик/профайлер команд Symfony
Профилировщик/профайлер команд Symfony

Профилировщик команд содержит такую информацию, как:

Если ошибка была прервана каким-либо сигналом или по каким-либо причинам произошёл сбой, то вы увидите несколько иное оформление и содержимое:

Symfony 6.4 Профилировщик команд, различные состояния команд
Symfony 6.4 Профилировщик команд, различные состояния команд

Это первая большая новая возможность Symfony 6.4/7.0. В ближайшие дни мы опубликуем другие статьи в блоге, посвящённые остальным новым возможностям. Следите за новостями!

Дополнительные материалы

Предыдущая Статья

Шпаргалка по кодировке символов для JavaScript разработчиков

Следующая Статья

В Вашем JS-приложении происходит утечка памяти, а Вы об этом не знаете