netcurl 6.1.0 just released

8 days left in the planned sprint for release (and this was just a random set date at first).

netcurl 6.1.0 just released anyway! But the package has been up and tested for a few weeks already and sould be entirely backward-compatible with the 6.0-branch.

However, to be sure that the compatibility breaks are prevented (if you still uses old classes and calls anywhere), you should consider including tornevall/tornelib-php-netcurl-deprecate-60 into your installation packages as the choice has been made to not include the old name standards at all in the new release.

What’s new?

The entire structure actually. All drivers are separated into their own PSR-4 based modules and can be called separately. To use the old way to auto discover available drivers, MODULE_CURL has been replaced with NetWrapper, so that’s what you’re looking for in that case. If you are totally sure that you want to use specific drivers you can choose to do so.

Another thing that is new, is the way how you configure the drivers. There are a bunch of defaults that can be used by setting up a new WrapperConfig. This will be covered in the documentation soon. Also, the curl driver has been upgraded to support multiple calls in the same request (curl_multi). This has not been possible before. Also, mentioned below, the SOAP support has been upgraded. Amongst many features, WSDL-requests can now be done with or without cache (and keep the ability to detect authentication failures in both states).

With the above SOAP support, it was also decided to give WrapperConfig to set production/staging mode, where – if you initialize wrappers in staging mode – cached requests will be the default state for production requests. This will speed up things a bit.

Netcurl has also been divided into two separate packages, where the old network module is it’s own package as of version 6.1.0 – to make sure both packages are included in your projects it’s sometimes (to avoid redundant inclusions with composer) to just load tornelib-php-network as netcurl is included as a requirement in that package.

Most of the old drivers are from 6.1.0 removed, except for curl, streams and SOAP. As stream-drivers are included by default (with the binary-ready file_get_contents) I realize that nothing else are actually required. However, drivers can be built manually by the register functions if they are really necessary. In this release, however, an extra RSS parser are included that will use SimpleXML as long as Laminas RSS-parser isn’t included in the package.

Any questions or support related requests can be sent via the e-mail list or via

Good luck!

For full release notes, you can take a look at the list below.

    * [NETCURL-225] - NetCURL 6.1.0 EPIC
    * [NETCURL-226] - PSR4 NetCURL+Network (Phase 1)
    * [NETCURL-230] - WordPress driver in prior netcurl is lacking authentication mechanisms
    * [NETCURL-246] - Pipeline errors for PHP 7.3-7.4
    * [NETCURL-272] - getSoapEmbeddedRequest() - PHP 5.6+PHP 7.0
    * [NETCURL-274] - Cached wsdl requests and unauthorized exceptions
    * [NETCURL-200] - Confirm (by driver) that a driver is really available (update interface with requirements)
    * [NETCURL-209] - Support stream, when curl is not an option
    * [NETCURL-227] - Migrate: getHttpHost()
    * [NETCURL-231] - Move out MODULE_NETWORK to own repo
    * [NETCURL-232] - Make exceptions global
    * [NETCURL-234] - Support immediate inclusions of network libraries
    * [NETCURL-238] - Make setTimeout support ms (curlopt_timeout_ms)
    * [NETCURL-242] - Disengage from constructor usage
    * [NETCURL-243] - Reimport SSL helper
    * [NETCURL-244] - Reimport curl module
    * [NETCURL-245] - Reimport soapclient
    * [NETCURL-247] - The way we set user agent in the SSL module must be able to set in parents
    * [NETCURL-249] - setAuth for curl
    * [NETCURL-251] - setAuth for soap
    * [NETCURL-255] - Add static list of browsers for user-agent 
    * [NETCURL-258] - NetWrapper MultiRequest
    * [NETCURL-259] - High focus on curl (rebuild from 6.0)
    * [NETCURL-260] - Current curl implementation is only using GET and no advantage of Config
    * [NETCURL-261] - Make sure setAuthentication is a required standard in the wrapper interface
    * [NETCURL-263] - Add errorhandler for multicurl
    * [NETCURL-264] - Avoid static constants inside core functions
    * [NETCURL-265] - getCurlException($curlHandle, $httpCode) - httpCode is unused. Throw on >400
    * [NETCURL-267] - On http head errors (>400) and non empty bodies
    * [NETCURL-268] - Add Timeouts
    * [NETCURL-269] - Proxy support for stream_context
    * [NETCURL-271] - Synchronize with netcurl 6.0 test suites
    * [NETCURL-273] - Support driverless environment
    * [NETCURL-276] - Use a natural soapcall with call_user_func_array
    * [NETCURL-277] - Netwrapper Compatibility Service
    * [NETCURL-278] - setChain in 6.1 should throw errors when requested true
    * [NETCURL-279] - Make sure setOption is useful in NetWrapper and MODULE_CURL or work has been useless
    * [NETCURL-280] - proxy support for curlwrapper and wrappers that is not stream wrappers
    * [NETCURL-283] - Use setSignature (?) to make requesting clients set internal clientname/version as userAgent automatically instead of Mozilla
    * [NETCURL-285] - Reinstate Environment but in ConfigWrapper to make wsdl transfers go non-cache vs cache, etc
    * [NETCURL-286] - Move driver handler into own class
    * [NETCURL-287] - Initialize simplified streamSupport
    * [NETCURL-288] - Output support for XML in simpler wrappers
    * [NETCURL-289] - Open for third party identification rather than standard browser agent
    * [NETCURL-291] - SoapClient must be reinitialized each time it is called
    * [NETCURL-292] - Support basic rss+xml via GenericParser
    * [NETCURL-293] - Try fix proper rss parsing without garbage
    * [NETCURL-294] - Make it possible to initialize an empty curlwrapper (without url)
    * [NETCURL-295] - MultiNetwrapper (+Soap)