fixxxer согласен, параметры curl_setopt помнить невозможно, каждый раз пару минут трачу чтобы найти нужный.
Но цель класса не в том, чтобы упростить настройку curl, наверное этим займусь в следующей версии.
Пока что я пришел к набору параметров, которые всегда использую, их в классее выставляю "по умолчанию".
Задачи классов:
- подготовка данных для Cookie, GET и POST перед запросом (удобного аплоада файлов пока не делал)
- выставление обычных параметров curl_setopt, доступ к $ch для особых нужд
- обработка хедеров ответа, в т.ч. разбитых на несколько строк
- выделение значений часто используемых хедеров (Content-type, Content-length, status-code, status-class, last-modified, location, отделение charset от content-type, etc)
- Парсинг cookies ответа, представление параметров каждой cookie в виде массива, представление expires в unixtimestamp
- OOP-style, бросание Exception для корректной обработки, отсутствие глобальных переменных и констант, все в контекстах классов.
- комментарии в стиле Zend Studio с type hints.
Но основная задача - создание понятного интерфейса для хендлеров.
Это очень мощный механизм для обработки данных "на лету" по чанкам, что дает возможность обрабатывать ответы любой длины, но пока я разобрался, как их использовать ...
В этом пакете я создал абстрактный класс, расширяя который можно написать хендлеры для заголовков, cookies и тела ответа. Хендлеры заголовков и cookie вызываются до начала обработки body, т.е. хендлер для body можно назначить в зависимости от значения заголовка.
Например, в зависимости от content-type, я обрабатываю text/*, а для application/* хендлер не назначаю.
Ссылка:
gCurl на PHPClasses