«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 и его инструменты командной строки. Это то, что я сделал:

  • изменен PATH:

     $ 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 for 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 и написала расширение с помощью quot. но результат все тот же, поэтому это не изменило ситуацию.

После всего этого я остановил сервер 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- лев

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

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

$ pecl install -f pecl_http-1.7.6 через: $ pecl install -f pecl_http-1.7.6

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

альтернативно, если вы не можете контролировать определенные экологические переменные или устанавливать пакеты, вы можете попробовать использовать curl, который должен вернуть объект json (ниже – рабочий фрагмент вызова google api).

 $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"];