Каковы хорошие варианты использования cURL в PHP? - PullRequest
9 голосов
/ 14 февраля 2011

Очевидно, что функции cURL очень широко используются. Но почему это так? Это действительно только потому, что расширение в основном включено по умолчанию?

Хотя я, безусловно, могу сказать, что не представляю сторонние библиотеки поверх встроенных (DOMDocument vs phpQuery), использование curl кажется мне несколько странным. Есть куча HTTP-библиотек, таких как Zend_Http или PEAR Http_Request . И, несмотря на мое пренебрежение к ненужным объектно-ориентированным интерфейсам, процедурный API-интерфейс pull-параметра curl кажется мне менее разборчивым в сравнении.

Конечно, для этого есть причина. Но мне интересно, понимают ли большинство разработчиков PHP , для чего еще может быть использован libcurl, и что это не просто библиотека HTTP ?

У вас есть примеры или реальный код, который использует cURL для <любых других вещей>, для которых он был создан?

Или, если вы просто используете его для HTTP, каковы причины. Почему настоящие PHP HTTP библиотеки, похоже, в наше время избегают?

Ответы [ 3 ]

2 голосов
/ 14 февраля 2011

Я думаю, это будет связано с тем, почему люди используют функции mysql вместо mysqli (более объектно-ориентированный интерфейс) или делают шаг вперед и используют уровень абстракции данных или PDO.

HTTP_Request2 говорит, что есть адаптер cURL, доступный для работы с PHP-функциями cURL.

Лично многие из расширений PEAR, которые я опробовал, меня не впечатлили (и я чувствую себя менее уверенно с библиотеками PEAR, которые находятся в альфа-версии, которые не обновлялись долгое время). В то время как библиотека HTTP_Request2 выглядит довольно неплохо

Я бы, например, использовал бы cURL, не думая о поиске возможной библиотеки PEAR для использования. Так что спасибо за повышение моей осведомленности.

1 голос
/ 19 марта 2011

Библиотеки, которые вы упомянули, не являются стандартными, и из моего опыта работы с PHP я предпочитаю использовать меньше таких библиотек;они обеспечивают более широкую поверхность атаки, снижают надежность, открывают для будущей модификации / устаревания больше, чем сам PHP.

Далее, есть функциональность сокетов, которую я, хотя и использовал несколько раз, предпочитаю полагаться на более высокий уровень.подход на уровне, когда это возможно.

Для чего я использовал CURL?

Как некоторые могут знать, я сейчас работаю над PHP-фреймворком.Расширение коммуникационного ядра (соответственно называемое «соединение») использует CURL в качестве его основы.

Я использовал его широко, от извлечения значков из веб-сайтов (вместе с утилитами синтаксического анализатора и прочим) до стандартных вызовов API черезHTTP, а также уровень FTP, когда PHP FTP отключен (через потоковые обертки) - и все мы знаем, что собственный PHP FTP не настолько надежен.

0 голосов
/ 14 февраля 2011

Функциональные причины, указанные в комментариях:

  • Это очень старый, [ широко используемый и] хорошо проверенный код, надежно работает
  • обычно включен по умолчанию
  • позволяет очень тонко контролировать детали запроса.
    • Это может потребовать расширения. По своей природе API протокола общего знаменателя cURL может предоставлять функции, которые обычные HTTP-библиотеки в PHP не могут ...

Исторические причины:

  • curl раньше был единственным, кто мог обрабатывать куки, POST, загрузку файлов ...
  • Вероятно, многие используют curl из руководств, предшествующих PHP 5 .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...