-# pecl/http v2
+# pecl/http
## About:
-Extended HTTP support. Again.
+Extended HTTP support. Again.
* Introduces the http namespace.
* PHP stream based message bodies.
## Dependencies:
+pecl/http depends on a number of system libraries and PHP extensions for special features.
+
+#### Required system libraries:
+
+The following system libraries are required to build this extension:
+
+=zlib=
+ Provides gzip/zlib/deflate encoding.
+ Configure: `--with-http-zlib-dir`
+ Minimum version: 1.2.0.4
+ Install on Debian: `apt-get install zlib1g-dev`
+
+
+#### Optional system libraries:
+
+The following system libraries are optional and provide additional features:
+
+=libcurl=
+ Provides HTTP request functionality.
+ Configure: `--with-http-libcurl-dir`
+ Minimum version: 7.18.2
+ Install on Debian: `apt-get install libcurl4-openssl-dev`
+
+=libevent=
+ Internal event loop support for the HTTP client.
+ Configure: `--with-http-libevent-dir`
+ Minimum version: none
+ Install on Debian: `apt-get install libevent-dev`
+
+=libicu=
+ Provides IDNA2003 and/or IDNA2008 support in URLs.
+ Configure: `--with-http-libicu-dir`
+ Minimum version: none
+ Install on Debian: `apt-get install libicu-dev`
+
+=libidn=
+ Provides IDNA2003 support in URLs.
+ Configure: `--with-http-libidn-dir`
+ Minimum version: none
+ Install on Debian: `apt-get install libidn11-dev`
+
+=libidn2=
+ Provides IDNA2008 support in URLs.
+ Configure: `--with-http-libidn2-dir`
+ Minimum version: none
+ Install on Debian: `apt-get install libidn2-0-dev`
+
+=libidnkit=
+ Provides IDNA2003 support in URLs. Conflicts with libidnkit2.
+ Configure: `--with-http-libidnkit-dir`
+ Minimum version: none
+ Install on Debian: N/A
+
+=libidnkit2=
+ Provides IDNA2008 support in URLs. Conflicts with libidnkit.
+ Configure: `--with-http-libidnkit2-dir`
+ Minimum version: none
+ Install on Debian: N/A
+
+##### A note on IDNA libraries:
+
+If configured with multiple IDNA libraries' support, there's a run-time precedence of ICU over GNU libidn, which in turn has precendence over idnkit. If neither IDNA2008, nor IDNA2003 is explicitly requested, IDNA2008 has precendence.
+
+##### A note on the CURL library:
+
+There are usually different styles of SSL support for libcurl available, so you can choose between 'openssl' and f.e. 'nss' or 'gnutls' when installing libcurl.
+
+### PHP extensions:
+
This extension unconditionally depends on the pre-loaded presence of the following PHP extensions:
* raphf
* spl
-If configured ```--with-http-shared-deps``` (default) it requires on the pre-loaded presence of the following extensions, as long as they were available at build time:
+If configured ```--with-http-shared-deps``` (default) it depends on the pre-loaded presence of the following extensions, as long as they were available at build time:
* hash
* iconv
-* json
+* json (only until < 2.4.0)
+
+Please ensure that all extension on which pecl/http depends, are loaded before it, e.g in your `php.ini`:
+
+ ; obligatory deps
+ extension = raphf.so
+ extension = propro.so
+
+ ; if shared deps were enabled
+ extension = hash.so
+ extension = iconv.so
+ extension = json.so
+
+ ; finally load pecl/http
+ extension = http.so
## Conflicts:
## Changelog:
-Version | Change
---------|-------
-2.0.4 | Dropped the pecl/event conflict.
+0. v2.0.4
+ * Dropped the pecl/event conflict.
+0. v2.4.0
+ * Dropped the ext/json dependency.
+0. v2.4.2
+ * Added libidn2 and libicu as fallback for IDNA support.
+0. v2.6.0, v3.1.0
+ * Added idnkit-1 IDNA2003 support.
+ * Added idnkit-2 IDNA2008 support.
+ * Added ICU IDNA2008 support.
+ * Added explicit configuration options for each IDNA library.