2010-01-16 141 views
10

我正在为CouchDB开发PHP客户端。在浏览有关HTTP和cURL的php.net文档时,我遇到了PECL_HTTP扩展。乍一看,我想我会使用这个PECL扩展而不是cURL,因为它使用起来更简单,而且我也不会做非常复杂的HTTP工作。另外我总是喜欢尝试新事物,所以我不介意让我的脚湿润。PHP PECL_HTTP vs cURL扩展

至于我的问题向StackOverflow的社区:

  • 有没有人使用这两个PECL_HTTP和卷曲的扩展?
  • PECL扩展是否有任何严重的性能问题?
  • PECL扩展是否便于用户使用,因为它出现在表面上?
  • 久经考验的cURL库仍然优越吗?

编辑:事实证明,所述PECL_HTTP扩展使用一些引擎盖下卷曲源代码,所以它们不是完全不同的东西。两者都是编译后的PHP扩展。

+0

不要忘记,您可以访问使用流的网站。例如,'file_get_contents('http://google.com');'将下载谷歌主页的来源。 – ryeguy 2010-01-16 08:04:05

+1

@ryeguy:只是因为PHP做'file_put_contents('http://google.com','...');''会攻击你的Google主页。 – 2010-01-16 11:46:49

+0

fie_get_contents()+ stream_context也可以用于POST数据(或调用CouchDB和其他REST调用所需的其他HTTP方法) – johannes 2010-01-25 00:26:57

回答

2

PECL_HTTP扩展已被证明更简单易用,在一些地方几乎将我的代码减半。 :)

0

我还没有尝试PECL_HTTP呢。我更喜欢使用cURL,因为我可以先在命令行中对它进行测试。此外,cURL在标准的linux安装中可用,所以我可以期望它可以在各种基于Linux的托管中使用。我不知道PECL的可用性,因为我没有在我的代码中使用它的任何功能。

3

在我看来,CURL很简单,容易拾取。在PHP Cookbook(O'Reilly,2002)中,CURL被选为各种(性能)原因。

+0

cURL最终具有更多的功能,然后PECL_HTTP,因为它是一个编译的代码扩展,它将始终执行更快,当想要完成困难的情景时,有更多的参考资料可供cURL使用。 – Kitson 2010-01-16 15:50:13

+1

@Kitson,PECL扩展也是编译后的扩展;) – 2010-01-24 22:44:33

+0

...对于IO操作,性能胜利是最小的 - 大部分时间都花在网络上。 – johannes 2010-01-25 00:28:07

2

起初我不得不说我们在我们公司和处理我都喜欢php_http更多,我欣赏迈克的工作。

但是我们放弃了php_http,因为它没有捆绑在香草php中。我们正在一个Windows环境中工作,对于每个没有被php绑定的pecl扩展,我们必须自己编译它(这不是一件坏事)。在编译时,我们得到了一些错误,指出一些头文件丢失了。事实证明,这完全是我们的错,因为它在文档中有明确的说明。

而且php_http的,因为2.0版本,它有两个没有标准的依赖关系: - raphf 1.0.0或更高版本 - propro 1.0.0或更高版本

所以我们需要编译不仅仅是php_http多。 但是对于propro 1.0.0(2013-08-12)config.w32在下载时缺失(至少在写入状态时)。 所以我们不得不写我们自己的。等等...

最后我们得到它在PHP 5.5 VC11 x86的工作,但它花了一些时间。在公司中,你有时没有时间花这些东西。 因为它被捆绑在一起,所以Curl总是可以在盒子里使用。这可能是不使用php_http的严重原因。

我真的很感激的东西是如果php_http会把它变成香草的php。

希望这有助于一些决策者;-)