1 <?xml version=
"1.0" encoding=
"ISO-8859-1" ?>
2 <package version=
"2.0" xmlns=
"http://pear.php.net/dtd/package-2.0"
3 xmlns:
tasks=
"http://pear.php.net/dtd/tasks-1.0"
4 xmlns:
xsi=
"http://www.w3.org/2001/XMLSchema-instance"
6 http://pear.php.net/dtd/tasks-1.0
7 http://pear.php.net/dtd/tasks-1.0.xsd
8 http://pear.php.net/dtd/package-2.0
9 http://pear.php.net/dtd/package-2.0.xsd">
10 <name>pecl_http
</name>
11 <channel>pecl.php.net
</channel>
12 <summary>Extended HTTP Support
</summary>
13 <description><![CDATA[
14 This HTTP extension aims to provide a convenient and powerful
15 set of functionality for one of PHPs major applications.
17 It eases handling of HTTP urls, headers and messages, provides
18 means for negotiation of a client's preferred content type,
19 language and charset, as well as a convenient way to send any
20 arbitrary data with caching and resuming capabilities.
22 It provides powerful request functionality with support for
25 http://devel-m6w6.rhcloud.com/mdref/http
29 <name>Michael Wallner
</name>
31 <email>mike@php.net
</email>
34 <date>2014-
12-
17</date>
36 <release>3.0.0dev
</release>
40 <release>beta
</release>
43 <license>BSD, revised
</license>
45 + Preliminiary HTTP2 support for http\Client (libcurl with nghttp2 support)
46 + Improved performance of HTTP info parser (request/response line)
47 + Improved performance of updating client observers
48 + Improved performance of http\Env\Response output to streams
49 + Improved the error messages of the header parser
50 + Added http\Header\Parser class
51 + Added http\Client::configure() method accepting an array with the following options for libcurl:
52 . maxconnects (int, size of the connection cache)
53 . max_host_connections (int, max number of connections to a single host, libcurl
>=
7.30.0)
54 . max_pipeline_length (int, max number of requests in a pipeline, libcurl
>=
7.30.0)
55 . max_total_connections (int, max number of simultaneous open connections of this client, libcurl
>=
7.30.0)
56 . pipelining (bool, whether to enable HTTP/
1.1 pipelining)
57 . chunk_length_penalty_size (int, chunk length threshold for pipelining, libcurl
>=
7.30.0)
58 . content_length_penalty_size (int, size threshold for pipelining, libcurl
>=
7.30.0)
59 . pipelining_server_bl (array, list of server software names to blacklist for pipelining, libcurl
>=
7.30.0)
60 . pipelining_site_bl (array, list of server host names to blacklist for pipelining, libcurl
>=
7.30.0)
61 . use_eventloop (bool, whether to use libevent, libcurl+libevent)
62 + Added http\Client::getAvailableOptions() and http\Client::getAvailableConfiguration() methods
63 + Added support for HTTP2 if libcurl was built with nghttp2 support.
64 + Added http\Client\Curl\HTTP_VERSION_2_0 constant (libcurl
>=
7.33.0)
65 + Added http\Client\Curl\TLS_AUTH_SRP constant (libcurl
>=
7.21.4)
66 + Added pinned_publickey SSL request option (libcurl
>=
7.39.0)
67 + Added tlsauthtype, tlsauthuser and tlsauthpass SSL request option (libcurl
>=
7.21.4)
68 + Added verifystatus (a.k.a OCSP) SSL request option (libcurl
>=
7.41.0)
69 + Added proxyheader request option (libcurl
>=
7.37.0)
70 + Added unix_socket_path request option (libcurl
>=
7.40.0)
71 * Fixed compress request option
72 * Fixed parsing authorities of CONNECT messages
73 * Fixed parsing Content-Range messages
74 * Fixed http\Env\Response to default to chunked encoding over streams
75 * Fixed superfluous output of Content-Length:
0 headers
76 * Fixed persistent easy handles to be only created for persistent multi handles
77 * Fixed the header parser to accept not-yet-complete header lines
78 * Fixed http\Message::toStream() crash in ZTS mode
79 * Fixed the message stream parser to handle intermediary data bigger than
4k
80 * Fixed the message stream parser to handle single header lines without EOL
81 * Fixed http\Message\Body to not generate stat based etags for temporary streams
82 - Deprecated http\Client::enablePipelining(), use http\Client::configure([
"pipelining" =
> true]) instead
83 - Deprecated http\Client::enableEvents(), use http\Client::configure([
"use_eventloop" =
> true]) instead
84 - Removed the cookies entry from the transfer info, wich was very slow and generated a Netscape formatted list of cookies
85 - Changed the header parser to reject illegal characters
89 <file role=
"doc" name=
"LICENSE"/>
90 <file role=
"doc" name=
"CREDITS"/>
91 <file role=
"doc" name=
"Exceptions.txt"/>
92 <file role=
"doc" name=
"KnownIssues.txt"/>
93 <file role=
"doc" name=
"ThanksTo.txt"/>
94 <file role=
"src" name=
"config.m4"/>
95 <file role=
"src" name=
"config9.m4"/>
96 <file role=
"src" name=
"config.w32"/>
98 <file role=
"src" name=
"php_http_api.h"/>
99 <file role=
"src" name=
"php_http_buffer.c"/>
100 <file role=
"src" name=
"php_http_buffer.h"/>
101 <file role=
"src" name=
"php_http.c"/>
102 <file role=
"src" name=
"php_http_client.c"/>
103 <file role=
"src" name=
"php_http_client.h"/>
104 <file role=
"src" name=
"php_http_client_curl.c"/>
105 <file role=
"src" name=
"php_http_client_curl.h"/>
106 <file role=
"src" name=
"php_http_client_request.c"/>
107 <file role=
"src" name=
"php_http_client_request.h"/>
108 <file role=
"src" name=
"php_http_client_response.c"/>
109 <file role=
"src" name=
"php_http_client_response.h"/>
110 <file role=
"src" name=
"php_http_cookie.c"/>
111 <file role=
"src" name=
"php_http_cookie.h"/>
112 <file role=
"src" name=
"php_http_curl.c"/>
113 <file role=
"src" name=
"php_http_curl.h"/>
114 <file role=
"src" name=
"php_http_encoding.c"/>
115 <file role=
"src" name=
"php_http_encoding.h"/>
116 <file role=
"src" name=
"php_http_env.c"/>
117 <file role=
"src" name=
"php_http_env.h"/>
118 <file role=
"src" name=
"php_http_env_request.c"/>
119 <file role=
"src" name=
"php_http_env_request.h"/>
120 <file role=
"src" name=
"php_http_env_response.c"/>
121 <file role=
"src" name=
"php_http_env_response.h"/>
122 <file role=
"src" name=
"php_http_etag.c"/>
123 <file role=
"src" name=
"php_http_etag.h"/>
124 <file role=
"src" name=
"php_http_exception.c"/>
125 <file role=
"src" name=
"php_http_exception.h"/>
126 <file role=
"src" name=
"php_http_filter.c"/>
127 <file role=
"src" name=
"php_http_filter.h"/>
128 <file role=
"src" name=
"php_http.h"/>
129 <file role=
"src" name=
"php_http_header_parser.c"/>
130 <file role=
"src" name=
"php_http_header_parser.h"/>
131 <file role=
"src" name=
"php_http_header.c"/>
132 <file role=
"src" name=
"php_http_header.h"/>
133 <file role=
"src" name=
"php_http_info.c"/>
134 <file role=
"src" name=
"php_http_info.h"/>
135 <file role=
"src" name=
"php_http_message_body.c"/>
136 <file role=
"src" name=
"php_http_message_body.h"/>
137 <file role=
"src" name=
"php_http_message.c"/>
138 <file role=
"src" name=
"php_http_message.h"/>
139 <file role=
"src" name=
"php_http_message_parser.c"/>
140 <file role=
"src" name=
"php_http_message_parser.h"/>
141 <file role=
"src" name=
"php_http_misc.c"/>
142 <file role=
"src" name=
"php_http_misc.h"/>
143 <file role=
"src" name=
"php_http_negotiate.c"/>
144 <file role=
"src" name=
"php_http_negotiate.h"/>
145 <file role=
"src" name=
"php_http_object.c"/>
146 <file role=
"src" name=
"php_http_object.h"/>
147 <file role=
"src" name=
"php_http_options.c"/>
148 <file role=
"src" name=
"php_http_options.h"/>
149 <file role=
"src" name=
"php_http_params.c"/>
150 <file role=
"src" name=
"php_http_params.h"/>
151 <file role=
"src" name=
"php_http_querystring.c"/>
152 <file role=
"src" name=
"php_http_querystring.h"/>
153 <file role=
"src" name=
"php_http_response_codes.h"/>
154 <file role=
"src" name=
"php_http_url.c"/>
155 <file role=
"src" name=
"php_http_url.h"/>
156 <file role=
"src" name=
"php_http_utf8.h"/>
157 <file role=
"src" name=
"php_http_version.c"/>
158 <file role=
"src" name=
"php_http_version.h"/>
161 <file role=
"test" name=
"skipif.inc"/>
163 <file role=
"test" name=
"message_r_content_range.txt"/>
164 <file role=
"test" name=
"message_r_multipart_put.txt"/>
165 <file role=
"test" name=
"message_rr_empty.txt"/>
166 <file role=
"test" name=
"message_rr_empty_chunked.txt"/>
167 <file role=
"test" name=
"message_rr_empty_gzip.txt"/>
168 <file role=
"test" name=
"message_rr_helloworld_chunked.txt"/>
169 <file role=
"test" name=
"urls.txt"/>
172 <file role=
"test" name=
"cookie.inc"/>
173 <file role=
"test" name=
"http2.crt"/>
174 <file role=
"test" name=
"http2.key"/>
175 <file role=
"test" name=
"pipeline.inc"/>
176 <file role=
"test" name=
"proxy.inc"/>
177 <file role=
"test" name=
"server.inc"/>
179 <file role=
"test" name=
"index.html"/>
182 <file role=
"test" name=
"bug61444.phpt"/>
183 <file role=
"test" name=
"bug66388.phpt"/>
184 <file role=
"test" name=
"bug66891.phpt"/>
185 <file role=
"test" name=
"bug67932.phpt"/>
186 <file role=
"test" name=
"bug69000.phpt"/>
187 <file role=
"test" name=
"client001.phpt"/>
188 <file role=
"test" name=
"client002.phpt"/>
189 <file role=
"test" name=
"client003.phpt"/>
190 <file role=
"test" name=
"client004.phpt"/>
191 <file role=
"test" name=
"client005.phpt"/>
192 <file role=
"test" name=
"client006.phpt"/>
193 <file role=
"test" name=
"client007.phpt"/>
194 <file role=
"test" name=
"client008.phpt"/>
195 <file role=
"test" name=
"client009.phpt"/>
196 <file role=
"test" name=
"client010.phpt"/>
197 <file role=
"test" name=
"client011.phpt"/>
198 <file role=
"test" name=
"client012.phpt"/>
199 <file role=
"test" name=
"client013.phpt"/>
200 <file role=
"test" name=
"client014.phpt"/>
201 <file role=
"test" name=
"client015.phpt"/>
202 <file role=
"test" name=
"client016.phpt"/>
203 <file role=
"test" name=
"client017.phpt"/>
204 <file role=
"test" name=
"client018.phpt"/>
205 <file role=
"test" name=
"client019.phpt"/>
206 <file role=
"test" name=
"client020.phpt"/>
207 <file role=
"test" name=
"client021.phpt"/>
208 <file role=
"test" name=
"client022.phpt"/>
209 <file role=
"test" name=
"client023.phpt"/>
210 <file role=
"test" name=
"client024.phpt"/>
211 <file role=
"test" name=
"client025.phpt"/>
212 <file role=
"test" name=
"client026.phpt"/>
213 <file role=
"test" name=
"clientrequest001.phpt"/>
214 <file role=
"test" name=
"clientrequest002.phpt"/>
215 <file role=
"test" name=
"clientrequest003.phpt"/>
216 <file role=
"test" name=
"clientrequest004.phpt"/>
217 <file role=
"test" name=
"clientresponse001.phpt"/>
218 <file role=
"test" name=
"clientresponse002.phpt"/>
219 <file role=
"test" name=
"clientresponse003.phpt"/>
220 <file role=
"test" name=
"cookie001.phpt"/>
221 <file role=
"test" name=
"cookie002.phpt"/>
222 <file role=
"test" name=
"cookie003.phpt"/>
223 <file role=
"test" name=
"cookie004.phpt"/>
224 <file role=
"test" name=
"cookie005.phpt"/>
225 <file role=
"test" name=
"cookie006.phpt"/>
226 <file role=
"test" name=
"cookie007.phpt"/>
227 <file role=
"test" name=
"cookie008.phpt"/>
228 <file role=
"test" name=
"cookie009.phpt"/>
229 <file role=
"test" name=
"cookie010.phpt"/>
230 <file role=
"test" name=
"cookie011.phpt"/>
231 <file role=
"test" name=
"cookie012.phpt"/>
232 <file role=
"test" name=
"encstream001.phpt"/>
233 <file role=
"test" name=
"encstream002.phpt"/>
234 <file role=
"test" name=
"encstream003.phpt"/>
235 <file role=
"test" name=
"encstream004.phpt"/>
236 <file role=
"test" name=
"encstream005.phpt"/>
237 <file role=
"test" name=
"encstream006.phpt"/>
238 <file role=
"test" name=
"encstream007.phpt"/>
239 <file role=
"test" name=
"encstream008.phpt"/>
240 <file role=
"test" name=
"encstream009.phpt"/>
241 <file role=
"test" name=
"envrequestbody001.phpt"/>
242 <file role=
"test" name=
"envrequestcookie001.phpt"/>
243 <file role=
"test" name=
"envrequestfiles001.phpt"/>
244 <file role=
"test" name=
"envrequestfiles002.phpt"/>
245 <file role=
"test" name=
"envrequestform.phpt"/>
246 <file role=
"test" name=
"envrequestheader001.phpt"/>
247 <file role=
"test" name=
"envrequestquery.phpt"/>
248 <file role=
"test" name=
"envresponse001.phpt"/>
249 <file role=
"test" name=
"envresponse002.phpt"/>
250 <file role=
"test" name=
"envresponse003.phpt"/>
251 <file role=
"test" name=
"envresponse004.phpt"/>
252 <file role=
"test" name=
"envresponse005.phpt"/>
253 <file role=
"test" name=
"envresponse006.phpt"/>
254 <file role=
"test" name=
"envresponse007.phpt"/>
255 <file role=
"test" name=
"envresponse008.phpt"/>
256 <file role=
"test" name=
"envresponse009.phpt"/>
257 <file role=
"test" name=
"envresponse010.phpt"/>
258 <file role=
"test" name=
"envresponse011.phpt"/>
259 <file role=
"test" name=
"envresponse012.phpt"/>
260 <file role=
"test" name=
"envresponse013.phpt"/>
261 <file role=
"test" name=
"envresponse014.phpt"/>
262 <file role=
"test" name=
"envresponse015.phpt"/>
263 <file role=
"test" name=
"envresponse016.phpt"/>
264 <file role=
"test" name=
"envresponse017.phpt"/>
265 <file role=
"test" name=
"envresponse018.phpt"/>
266 <file role=
"test" name=
"envresponsebody001.phpt"/>
267 <file role=
"test" name=
"envresponsebody002.phpt"/>
268 <file role=
"test" name=
"envresponsecodes.phpt"/>
269 <file role=
"test" name=
"envresponsecookie001.phpt"/>
270 <file role=
"test" name=
"envresponseheader001.phpt"/>
271 <file role=
"test" name=
"envresponseranges001.phpt"/>
272 <file role=
"test" name=
"etag001.phpt"/>
273 <file role=
"test" name=
"filterchunked.phpt"/>
274 <file role=
"test" name=
"filterzlib.phpt"/>
275 <file role=
"test" name=
"header001.phpt"/>
276 <file role=
"test" name=
"header002.phpt"/>
277 <file role=
"test" name=
"header003.phpt"/>
278 <file role=
"test" name=
"header004.phpt"/>
279 <file role=
"test" name=
"header005.phpt"/>
280 <file role=
"test" name=
"header006.phpt"/>
281 <file role=
"test" name=
"header007.phpt"/>
282 <file role=
"test" name=
"header008.phpt"/>
283 <file role=
"test" name=
"header009.phpt"/>
284 <file role=
"test" name=
"headerparser001.phpt"/>
285 <file role=
"test" name=
"headerparser002.phpt"/>
286 <file role=
"test" name=
"headerparser003.phpt"/>
287 <file role=
"test" name=
"info001.phpt"/>
288 <file role=
"test" name=
"info002.phpt"/>
289 <file role=
"test" name=
"message001.phpt"/>
290 <file role=
"test" name=
"message002.phpt"/>
291 <file role=
"test" name=
"message003.phpt"/>
292 <file role=
"test" name=
"message004.phpt"/>
293 <file role=
"test" name=
"message005.phpt"/>
294 <file role=
"test" name=
"message006.phpt"/>
295 <file role=
"test" name=
"message007.phpt"/>
296 <file role=
"test" name=
"message008.phpt"/>
297 <file role=
"test" name=
"message009.phpt"/>
298 <file role=
"test" name=
"message010.phpt"/>
299 <file role=
"test" name=
"message011.phpt"/>
300 <file role=
"test" name=
"message012.phpt"/>
301 <file role=
"test" name=
"message013.phpt"/>
302 <file role=
"test" name=
"message014.phpt"/>
303 <file role=
"test" name=
"message015.phpt"/>
304 <file role=
"test" name=
"message016.phpt"/>
305 <file role=
"test" name=
"messagebody001.phpt"/>
306 <file role=
"test" name=
"messagebody002.phpt"/>
307 <file role=
"test" name=
"messagebody003.phpt"/>
308 <file role=
"test" name=
"messagebody004.phpt"/>
309 <file role=
"test" name=
"messagebody005.phpt"/>
310 <file role=
"test" name=
"messagebody006.phpt"/>
311 <file role=
"test" name=
"messagebody007.phpt"/>
312 <file role=
"test" name=
"messagebody008.phpt"/>
313 <file role=
"test" name=
"messagebody009.phpt"/>
314 <file role=
"test" name=
"messagebody010.phpt"/>
315 <file role=
"test" name=
"messageparser001.phpt"/>
316 <file role=
"test" name=
"messageparser002.phpt"/>
317 <file role=
"test" name=
"negotiate001.phpt"/>
318 <file role=
"test" name=
"params001.phpt"/>
319 <file role=
"test" name=
"params002.phpt"/>
320 <file role=
"test" name=
"params003.phpt"/>
321 <file role=
"test" name=
"params004.phpt"/>
322 <file role=
"test" name=
"params005.phpt"/>
323 <file role=
"test" name=
"params006.phpt"/>
324 <file role=
"test" name=
"params007.phpt"/>
325 <file role=
"test" name=
"params008.phpt"/>
326 <file role=
"test" name=
"params009.phpt"/>
327 <file role=
"test" name=
"params010.phpt"/>
328 <file role=
"test" name=
"params011.phpt"/>
329 <file role=
"test" name=
"params012.phpt"/>
330 <file role=
"test" name=
"params013.phpt"/>
331 <file role=
"test" name=
"params014.phpt"/>
332 <file role=
"test" name=
"params015.phpt"/>
333 <file role=
"test" name=
"phpinfo.phpt"/>
334 <file role=
"test" name=
"propertyproxy001.phpt"/>
335 <file role=
"test" name=
"querystring001.phpt"/>
336 <file role=
"test" name=
"querystring002.phpt"/>
337 <file role=
"test" name=
"serialize001.phpt"/>
338 <file role=
"test" name=
"url001.phpt"/>
339 <file role=
"test" name=
"url002.phpt"/>
340 <file role=
"test" name=
"url003.phpt"/>
341 <file role=
"test" name=
"url004.phpt"/>
342 <file role=
"test" name=
"url005.phpt"/>
343 <file role=
"test" name=
"urlparser001.phpt"/>
344 <file role=
"test" name=
"urlparser002.phpt"/>
345 <file role=
"test" name=
"urlparser003.phpt"/>
346 <file role=
"test" name=
"urlparser004.phpt"/>
347 <file role=
"test" name=
"urlparser005.phpt"/>
348 <file role=
"test" name=
"urlparser006.phpt"/>
349 <file role=
"test" name=
"urlparser007.phpt"/>
350 <file role=
"test" name=
"urlparser008.phpt"/>
351 <file role=
"test" name=
"urlparser009.phpt"/>
352 <file role=
"test" name=
"urlparser010.phpt"/>
353 <file role=
"test" name=
"urlparser011.phpt"/>
354 <file role=
"test" name=
"version001.phpt"/>
368 <channel>pecl.php.net
</channel>
370 <providesextension>raphf
</providesextension>
374 <channel>pecl.php.net
</channel>
376 <providesextension>propro
</providesextension>
380 <extension><name>hash
</name></extension>
381 <extension><name>iconv
</name></extension>
382 <extension><name>json
</name></extension>
385 <providesextension>http
</providesextension>
388 name=
"with-http-zlib-dir"
389 prompt=
"where to find zlib"
392 name=
"with-http-libcurl-dir"
393 prompt=
"where to find libcurl"
396 name=
"with-http-libevent-dir"
397 prompt=
"where to find libevent"