"Неустранимая ошибка PHP: класс" HttpRequest "не найден"

Я застрял, пытаясь решить эту проблему во многих отношениях, читая много постов, но все еще безуспешно. Я работаю на Mac OSX 10.7 Lion и пишу плагин для сайта WordPress (файлы php), используя MAMP, и в какой-то момент я должен сделать HTTP-запрос:

$request = new HttpRequest('something'); 
$request->setMethod(HTTP_METH_GET);

Есть ошибка при выполнении этого запроса, и когда я проверил файл журнала, вот сообщение:

"PHP Fatal error:  Class 'HttpRequest' not found in (the_php_file)"

Я уже установил PEAR, PECL и расширение HTTP (pecl_http), Xcode и его инструменты командной строки. Вот что я сделал:

  • изменил путь

    $ echo "export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH" >> ~/.profile`
    
  • проверил правильность путей для php, pear и pecl:

    • /Applications/MAMP/bin/php/php5.3.6/bin/php - путь к php
    • /Applications/MAMP/bin/php/php5.3.6/bin/pear для груши
    • /Applications/MAMP/bin/php/php5.3.6/bin/pecl для pecl
  • Я загрузил исходник для php со страницы MAMP (и проверил, что загруженная версия была той же самой, которую я использую, то есть php5.5.3). Затем я извлек содержимое и поместил его в /Applications/MAMP/bin/php/php5.5.3/include/php

  • Внутри /Applications/MAMP/bin/php/php5.5.3/include/php я запустил ./configure
  • Я выполнил: pecl install pecl_http
  • Я также добавил эти расширения в php.ini (изначально я изменил файл MAMP/bin/php/php5.5.3/conf/php.ini):

    extension=raphf.so
    extension=propro.so
    extension="http.so"
    

О том, что последний в кавычках: когда я добавил расширение вручную, я сделал это так: extension=http.so, Затем (при попытке исправить мою проблему) я попробовал альтернативную установку, которая автоматически изменила php.ini, и написал расширение с квотом. оценки, но результат был все тот же, так что это не имело значения.

После всего этого я остановил сервер MAMP и запустил его снова, но когда я выполнил php, я все еще получил ошибку (видимую в php_error.log):

PHP Fatal error:  Class 'HttpRequest' not found

Я следовал этому руководству в основном, среди многих других: http://www.lullabot.com/blog/article/installing-php-pear-and-pecl-extensions-mamp-mac-os-x-107-lion

Я был бы признателен за любую идею, потому что я исчерпал их.

2 ответа

Класс HttpRequest предоставляется v1 этого расширения PECL.

Переустановите через: $ pecl install -f pecl_http-1.7.6

Вы можете найти документацию для v2 здесь: https://mdref.m6w6.name/http

Альтернативно, если вы не можете управлять определенными переменными среды или устанавливать пакеты, вы можете попробовать использовать curl, который должен возвращать объект json (ниже приведен рабочий фрагмент вызова API Google).

$url = 'https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=TOKEN_DATA_123';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$json = json_decode($response, true);
curl_close($ch);
print_r($json);
$userEmail = $json["email"];
Другие вопросы по тегам