Fetch data over the web: curl, file_get_contents or something else?
I'm unsure what's recommended, but there are several patterns (at least) through the codebase:


CRM_Utils_HttpClient, used in core functionality like system checks. This has test coverage!
PHP curl, common in the payment processors.
PEAR HTTP_Request, in older code like geocoders.
Occasionally file_get_contents() to switch things up for fun?


I like using Guzzle in extensions - but I'm uncertain what would happen if CiviCRM core now decided to bundle a different version of Guzzle to the one used in my extensions?