Новое в 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, но мы адаптировали некоторые элементы для лучшего соответствия командам:
Профилировщик команд содержит такую информацию, как:
- Полная информация о вводимых аргументах/опциях и конфигурации сервера, например, переменные окружения;
- Общее время выполнения и потребление памяти, включая подробную трассировку каждого события и запуска слушателя/подписчика;
- Подробная информация о вызванных и не вызванных слушателях;
- Сообщения журнала и сообщения об устаревании, генерируемые при выполнении команды;
- Все остальные знакомые вам панели, такие как запросы Doctrine, отправленные письма и т.д.
Если ошибка была прервана каким-либо сигналом или по каким-либо причинам произошёл сбой, то вы увидите несколько иное оформление и содержимое:
Это первая большая новая возможность Symfony 6.4/7.0. В ближайшие дни мы опубликуем другие статьи в блоге, посвящённые остальным новым возможностям. Следите за новостями!