первый релиз PEAR::HTTP_Request2

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
первый релиз PEAR::HTTP_Request2

Решил слегка попиарить свой проект, тем более что клиент HTTP наверняка многим нужен.

Страница пакета: http://pear.php.net/package/HTTP_Request2

Устанавливать лучше всего, конечно, при помощи установщика PEAR:
Код:
$ pear install http_request2-alpha
Зная завсегдатаев этого форума, сразу отвечу на популярный вопрос: "нафига!? чем оно лучше чем ...?"

чем пакет HTTP_Request?
  • PHP5, нормально работает под E_STRICT
  • Поддержка curl, если установлен
  • Менее жаден до памяти, например, при загрузке файлов через POST читает файл не целиком, а кусками

чем просто curl?
  • У просто curl'а чудовищный API. :)
  • Не требует установки расширений, может работает при помощи socket'ов, которые всегда есть

чем Zend_Http_Client?
  • Поддержка curl, если установлен
  • Менее жаден до памяти, например, при загрузке файлов через POST читает файл не целиком, а кусками
  • Возможность прицепления Observer'ов к запросу для отслеживания его выполнения и рисования красивых progress-bar'ов

чем расширение pecl_http
  • Не требует установки расширений, может работает при помощи socket'ов, которые всегда есть


Там конечно не всё ещё готово, но и сама версия 0.1.0-alpha должна кагбы говорить об этом. Поддержка redirect'ов и передачи куков между запросами будет реализована в пакете HTTP_Client2, когда до него дойдут руки. Также популярная просьба --- поддержка параллельных запросов, но надо продумать реализацию.
 

atv

Новичок
чем SimpleTest http client
...

P.S. По привычке пользуюсь им.
 

whirlwind

TDD infected, paranoid
Sad Spirit грамотно сделано, спасибо! Вообще это нужно повесить гденить на видном месте в качестве учебного пособия - есть тесты и паттерны в действии.
 

HraKK

Мудак
Команда форума
Krishna
PEAR ацтой, может быть, но Вы сначала сделайте что-то что поможет другим, а потом уже кричите. ИМХО ацтой можно кричать только ~платным проектам, а бесплатным или конструктивную критику, а не деструктивную аля - аффтар убейся или промолчать.
 

crocodile2u

http://vbolshov.org.ru
Блин... фигасе... оказывается, он ее незарегистрированным пользователям не показывает. Если есть желание, могу полный текст скинуть на мыл (напиши мне в асю), а краткое содержание вот:
Не так уж много кто знает о том, что некоторые задачи в PHP можно заставить выполняться параллельно — и для не этого не нужно прибегать к форкам. В PHP5 есть stream-functions, и среди них — stream_select().

Прочитав статью Cameron Laird (http://www.ibm.com/developerworks/opensource/library/os-php-multitask/index.html?S_TACT=105AGX44&S_CMP=EDU), каждый, кто еще этого не сделал, сможет научиться этой технике, я же в этом топике предлагаю вашему вниманию простой небольшой класс Parastreams, который собсно займется распараллеливанием — а уж что делать с полученными из потоков данными — вы решите сами, указав обработчики данных.
-~{}~ 21.11.08 11:43:

кстати, Sad Spirit. У меня где-то был инвайт на хабр. Правда, может, он уже потерялся, но если что - я посмотрю..
 

valeraorg

Новичок
Нужно зайти на сервер по ssl протоколу. Использую либу HTTP_Request2
Код:
PHP:
$client = new HTTP_Request2('https://ssl.rapidshare.com/cgi-bin/collectorszone.cgi','POST');         $client->addPostParameter(array(             'username' => 'mylogin',             'password' => 'mypassword',         ));                  $response = $client->send();          var_dump($response->getBody());exit;
Не хочет заходить - заново выкидывает на форму авторизации.
Конфиг такой:
PHP:
$config['options'] = array(         'adapter'           => 'HTTP_Request2_Adapter_Curl',         'connect_timeout'   => 10,         'timeout'           => 0,         'use_brackets'      => true,         'protocol_version'  => '1.1',         'buffer_size'       => 16384,         'store_body'        => true,          'proxy_host'        => '',         'proxy_port'        => '',         'proxy_user'        => '',         'proxy_password'    => '',         'proxy_auth_scheme' => HTTP_Request2::AUTH_BASIC,          'ssl_verify_peer'   => false,         'ssl_verify_host'   => true,         'ssl_cafile'        => null,         'ssl_capath'        => null,         'ssl_local_cert'    => тгдд,         'ssl_passphrase'    => null,          'digest_compat_ie'  => false     );
Причем если меняю ssl_verify_peer на false то под виндой работает, на linux нет. Где взять сертификаты и как их прикрепить? нужно ли (под виндой то работает)?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я сделал класс для курл-мульти
выложить?
 

Alexandre

PHPПенсионер
я сделал класс для курл-мульти
выложить?
кажется я его уже видел :) (уже класс выкладывадся)
хороший класс

-~{}~ 03.08.09 13:41:

может, пригодится: http://habrahabr.ru/blogs/php/43637/
а в чем смысл делать статью закрытой???

-~{}~ 03.08.09 13:42:

Sad Spirit лично я PEAR не использую, но твой класс глянул, можно из него подчерпнуть кой-чего новое.
Спасибо
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Alexandre
Sad Spirit лично я PEAR не использую, но твой класс глянул, можно из него подчерпнуть кой-чего новое.
Спасибо
Я вот не понимаю: "PEAR не использую" --- это повод для гордости чтоле? PEAR, в первую очередь, --- средство распространения и установки пакетов, а уж пакеты могут быть из совершенно разных источников. Да и в самом репозитории PEAR пакеты написанные совершенно разными людьми, некоторые я и сам остерегаюсь использовать.
 

cDLEON

Онанист РНРСlub
Если бы эти пакеты в PEAR не были бы привязаны к другим классам самого PEAR типа PEAR::error etc... я бы использовал полезные либы... А так)) Таскать за собой абсолютно ненужный функционал в этих классах мне не хочется :)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: cDLEON
Если бы эти пакеты в PEAR не были бы привязаны к другим классам самого PEAR типа PEAR::error etc... я бы использовал полезные либы... А так)) Таскать за собой абсолютно ненужный функционал в этих классах мне не хочется :)
Добро пожаловать в новый 2009 год. Ибо начиная с 2007 года в PEAR все новые пакеты принимаются в версиях для PHP5, а для обработки ошибок используются исключения.
 

AmdY

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

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: AmdY
эх, если бы ещё доку с примерами набросали или файлики как сделал grigori. согласен, можно и самому разобраться, но это издевательство тратить кучу времени на пакет и пожалеть десяток минут на примеры.
Во-первых, полноценные примеры по всей функциональности пишутся не "десяток минут". Во-вторых, у пакета не зря пока статус "альфа". В-третьих, как обычно, патчи приветствуются.
 
Сверху