Hello, everyone. As people who've poked around in the Laconica codebase
know, we have a lot of different HTTP client access methods: curl,
file_get_contents(), the Yadis tool's HTTPFetcher, and maybe even others.
In Laconica 0.9.x, I would like to have a single HTTP client class that
all HTTP client code uses (except our external libraries, of course).
The benefits to the admin are that he/she doesn't have to worry about
dependencies. To developers, our code becomes more readable. Also,
improvements to the client class will improve all HTTP-using code.
I see a few options:
* Use the PEAR HTTP_Client or HTTP_Request (or effin'
HTTP_Request2... stupid PEAR) tools. Of these, I like
HTTP_Request2, since it seems to use pluggable engines.
http://pear.php.net/packages.php?catpid=11&php=all
<http://pear.php.net/packages.php?catpid=11&php=all>
* Always use curl, and always require curl. Maybe not such a bad
idea, although I think the curl programming interface is horrible.
* Use PECL's HTTP client class, and require it.
* Write our own wrapper class, which uses whichever is the best
available HTTP client method.
Some things I'd like to add to our HTTP client functionality, no matter
what:
* Caching of HTTP results in memcached; using If-Modified-Since,
If-Not-Match to only get stuff from a server if the cache is out
of date.
* Follow HTTP redirects automatically.
* Don't get into HTTP redirect loops.
* Sane timeouts and size limits for requests.
My current feeling is that we should have our own wrapper class. Yet
more extra code, but it seems like the most efficient, best chance for
clean code, and best chance to use available resources effectively.
Any feelings on the subject?
-Evan
_______________________________________________
Laconica-dev mailing list
[email protected]
http://mail.laconi.ca/mailman/listinfo/laconica-dev