Better Code Editor Selection

Jérôme Tamarelle
Contributed by Jérôme Tamarelle in #44575 and #45745

The Symfony framework.ide configuration option defines the IDE/editor to use to open files when clicking on paths in error pages and other parts of the profiler. Some developers don't like this option because it sets the IDE/editor as a project-wide option, when in reality choosing an IDE or text editor is one of the most personal decisions for developers.

That's why in Symfony 6.1 we've improved this feature to allow defining the IDE/editor via an environment variable called SYMFONY_IDE. When the framework.ide option is not set, Symfony tries to read that env var to get the IDE/editor.

An additional bonus of this feature is that you must only set the env var once in your system to use the same IDE/editor everywhere. The framework.ide option requires setting it per project.

Xdebug Information Page

Christopher Hertel
Contributed by Christopher Hertel in #44483

The web debug toolbar displays debug information about the PHP version, whether OPcache and Xdebug are enabled or not, etc. It also provides a link to see the output of the phpinfo() function so you can check the value of PHP configuration options or if some PHP extension is missing.

In Symfony 6.1 we're improving this information with a new link to the "Xdebug info page", where you can see all the configuration options used by Xdebug:

Xdebug info in Symfony 6.1 Profiler

Copying HTTP Client Requests as cURL Commands

Jérôme Tanghe
Contributed by Jérôme Tanghe in #43931

The Symfony profiler collects all the information about the requests made with the HttpClient component. This helps you debug any issues about them, but sometimes it's easier to re-run the request to try to reproduce the issue.

That's why in Symfony 6.1 all HttpClient requests include a cURL button to get the cURL command needed to reproduce the same request:

Copying HttpClient requests as cURL commands in Symfony 6.1 Profiler

For example, consider the following simple request:

1
$response = $client->request('GET', 'https://api.github.com/repos/symfony/symfony');

The generated cURL command would look like this:

1
2
3
4
5
6
7
$ curl \
  --compressed \
  --request GET \
  --url 'https://api.github.com/repos/symfony/symfony' \
  --header 'accept: */*' \
  --header 'user-agent: Symfony HttpClient/Curl' \
  --header 'accept-encoding: gzip'
Published in #Living on the edge