10
votes

PHP PECL_HTTP VS CURL Extension

Je travaille sur un client PHP pour CouchDB. Lors de la navigation sur la documentation PHP.NET concernant HTTP et CURL, j'ai rencontré l'extension pecl_http. À première vue, je pense que je voudrais utiliser cette extension pecl au lieu de curl, car il est beaucoup plus simple d'utiliser, et je ne fais pas de travail HTTP très compliqué. De plus, j'aime toujours essayer de nouvelles choses, cela ne me dérangerait pas de me moudre mes pieds.

En ce qui concerne ma question à la communauté Stackoverflow:

  • a-t-il utilisé à la fois les extensions PECL_HTTP et CURL?
  • L'extension PECL a-t-elle des problèmes de performance graves?
  • est l'extension PECL comme utilisateur convivial tel qu'il apparaît à la surface?
  • La bibliothèque de courbure éprouvée est-elle toujours supérieure?

    EDIT: Comme il s'avère, l'extension Pecl_HTTP utilise une partie du code source de courbure sous la hotte, de sorte qu'ils ne sont pas des bêtes complètement différentes. Les deux sont également compilés des extensions à PHP.


3 commentaires

N'oubliez pas que vous pouvez accéder à des sites à l'aide de flux. Par exemple, file_get_contents ('http://google.com'); téléchargera la source de la page d'accueil de Google.


@RryEguy: Et simplement parce que php est SOO L33T faire File_Put_Contents ('http://google.com', "..."); piratera Google Page d'accueil pour vous.


fie_get_contents () + stream_context peut également être utilisé pour publier des données (ou appeler d'autres méthodes HTTP nécessaires à CouchDB et à d'autres appels de repos)


4 Réponses :


0
votes

Je n'ai pas essayé pecl_http . Je préfère utiliser Curl, car je peux la tester en ligne de commande en premier. En outre, CURL est disponible dans l'installation Standard Linux, afin que cela puisse vous attendre à ce qu'il soit disponible dans divers hébergements sous Linux. Je ne connais pas la disponibilité de PACL, car je n'utilise aucune de ses fonctions dans mon code.


0 commentaires

3
votes

À mon avis Curl est simple et facile à ramasser. Dans PHP Cookbook (O'Reilly, 2002) Curl a été choisi pour diverses raisons (performances).


3 commentaires

Curl a finalement plus de fonctionnalités que pecl_http et, car il s'agit d'une extension de code compilée, elle exécutera toujours plus vite, et il y a beaucoup plus de matériel de référence disponible pour la courbe lorsque vous souhaitez accomplir des scénarios difficiles.


@Kitson, extensions PECL sont également compilées des extensions;)


... et pour les opérations IO, la victoire de performance est minimale - la plupart du temps est dépensée sur le réseau.



2
votes

L'extension pecl_http s'est avérée beaucoup plus simple à utiliser, de couper presque mon code en deux dans certains endroits. :)


0 commentaires

2
votes

Au début, je dois dire que nous avons utilisé à la fois notre entreprise et de la manipulation, j'aime PHP_HTP plus et j'apprécie le travail de Mike.

Mais nous avons abandonné php_http car il n'est pas fourni à Vanilla PHP. Nous travaillons dans un environnement Windows et pour chaque extension PECL qui n'est pas groupée par PHP elle-même, nous devons nous le compiler nous-mêmes (ce qui n'est pas une mauvaise chose). Tout en compilant, nous avons eu une erreur que certains en-têtes manquaient. Il s'est avéré que c'était totalement notre faute, car il est clairement indiqué dans la documentation.

Et la version 2.0 de php_http, il possède deux dépendances non-standard: - Raphf 1.0.0 ou plus récent - propro 1.0.0 ou plus récent

Nous devions donc compiler plus que seulement php_http. Mais pour Propro 1.0.0 (2013-08-12) config.w32 a été manquant dans le téléchargement (au moins dans l'état d'écriture). Nous avons donc dû écrire notre propre. Et ainsi de suite ...

À la fin, nous l'avons eu pour fonctionner pour PHP 5.5 VC11 X86, mais cela a pris du temps. Dans les entreprises, vous n'avez parfois pas le temps de dépenser de telles choses. Curl fonctionne toujours hors de la boîte, car il est groupé. Cela pourrait être une raison grave de ne pas utiliser php_http.

Quelque chose que j'apprécierais vraiment, c'est si php_http le ferait dans la PHP vanille.

J'espère que cela aide certaines décideurs; -)


0 commentaires