NetCurl is a transport-flexible PHP communication library. Its core purpose is to let callers make a request without hard-coding whether cURL, PHP streams, SOAP, RSS/XML, or a registered custom driver must perform it.
Recommended standalone installation:
composer require tornevall/tornelib-php-netcurl:^6.1If you also need the separate network/domain/address utility package:
composer require tornevall/tornelib-php-network:^6.1The maintained public documentation now lives in Tornevall Tools:
The guide contains practical examples for normal requests, JSON/XML, SOAP/WSDL, RSS/XML, raw/parsed responses, headers, authentication, proxies, timeouts, multi-request handling, custom drivers, and migration away from MODULE_CURL.
Implementation history, defects and version planning are tracked in GitHub:
Old Confluence documentation is no longer the maintained documentation target.
cURL is the preferred general HTTP driver when available, but it is not supposed to be a hard requirement for generic requests. NetCurl is designed to select the best usable driver at runtime.
A typical installation may include:
apt-get install php-curl php-xml php-soapRelevant runtime capabilities:
- cURL: preferred general HTTP transport when available.
- PHP streams /
allow_url_fopen: fallback path for compatible HTTP requests when cURL is unavailable. - SOAP:
SoapClientfor WSDL/SOAP requests when available. - XML: used for XML/SOAP-related parsing and fallback paths.
- RSS/XML: supported through the RSS wrapper and parsing layer.
- External drivers: applications can register implementations of the wrapper interface and choose whether they run before or after built-in drivers.
See the Tools documentation for examples and exact behavior.
The old PHP 5.6 support claim is no longer valid for the current 6.1 source tree.
Runtime compatibility is verified by the maintained GitHub Actions compatibility matrix. Historical Bamboo and Bitbucket runs can still be useful when investigating old releases, but they must not be treated as the current compatibility reference.
Compatibility work and legacy probes are tracked in:
- cURL
- PHP stream/file-get-contents transport
- SoapClient
- RSS/XML
- externally registered custom drivers
Sockets are not currently a built-in NetCurl transport.
For richer RSS feed support, install Laminas Feed:
composer require laminas/laminas-feedNetCurl keeps fallback behavior for RSS/XML so optional feed libraries do not automatically become hard requirements.
MODULE_CURL is a legacy compatibility facade retained in 6.1 for older clients. New 6.1 code should prefer TorneLIB\Module\Network\NetWrapper.
MODULE_CURL is deprecated in 6.1 and planned for removal in 6.2. Compatibility work is deliberately preserving the useful request/driver/input/output behavior rather than preserving the old class forever.
See:
- #16 - Remove MODULE_CURL in 6.2 and consolidate the networking API
- #22 - Define the cross-version NetCurl compatibility contract
From the current maintenance work onward, changelog entries for features, fixes and compatibility changes link to their GitHub issue/ticket. Historical changelog entries are kept as historical records and are not assigned guessed ticket references.
See CHANGELOG.md.