Pull to refresh

ООП-обертка для PHP lib_curl

Reading time 2 min
Views 4.9K
Пару лет назад я сделал небольшой персональный проект под названием «Аггрегатор комиксов». Суть проекта в том, что есть куча сайтов с комиксами, на которых нет RSS-лент. И мне было откровенно лень ходить по этим сайтам вручную и проверять апдейты.

Посему был написан примитивный «паучок», обходящий сайты по расписанию, разбирающий содержимое страниц и по разным алгоритмам выковыривающий информацию об апдейтах и складывающий эту информацию в базу, откуда уже другой скрипт, вьюер, генерировал РСС, Атом или Хтмл.

Для доступа к сайтам было решено использовать lib_curl-модуль PHP. Можно было, конечно, обойтись простыми функциями вроде file_get_contents(), но эта функция не давала мне некоторых необходимых возможностей (например, получать http-статусы и заголовки), а wget`а у меня на хостинге не было. Да и PHP-модули под него мне не известны.

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

Несколько человек, которым я показывал исходники, сказали, что штука получилась довольно удобная и было бы неплохо сделать ее общедоступной. Кроме того, несколько потенциальных работодателей пожелали увидеть мой код. Посему было решено выложить Снусмумрика на Гитхаб. И выдать ссылку всем желающим.

На новизну идеи и воплощения нисколько не претендую. Буду рад, если кому-нибудь эта штуковина пригодится в деле.

Итак, что можно сделать с помощью Снусмумрика:
— Настраивать основные параметры Курлы через массив конфига;
— Отправлять хттп-запросы через Курлу, используя набор методов класса;
— Маскироваться под наиболее распространенные браузеры;
— Не заморачиваться разбором заголовков ответа;
— Не заморачиваться разбором кукисов;
— Используя уже полученные кукисы логиниться на сайты.

Чего Снусмумрик не умеет:
— Работать по хттпс. Когда-нибудь я обязательно найду кусочек времени, чтобы разобраться с основами работы через хтппс-протокол и исправить это недоразумение.

Документацию по Снусмумрику с примерами использования можно найти в Гитхаб-репозитории, в файле Readme.txt. Пока на английском, со временем я планирую сделать и русский ее вариант.

Альтернативы:
PEAR HTTP_Request2;
Zend_Http_Client;
Snoopy;
gCurl.
Tags:
Hubs:
+22
Comments 108
Comments Comments 108

Articles