Библиотека запросов PHP в Codeigniter

Я использую библиотеку запросов ( http://requests.ryanmccue.info/ ) для PHP.

Я установил композитор и добавил следующую конфигурацию Json в composer.json :

 { "require": { "rmccue/requests": ">=1.0" }, "autoload": { "psr-0":{"Requests" : "library/"} } } 

Поэтому в моем контроллере я пытаюсь запустить запрос через библиотеку, и я получаю:

  public function index() { Requests::register_autoloader(); $headers = array('Accept' => 'application/json'); $options = array('auth' => array('user', 'pass')); $request = Requests::get('https://api.github.com/gists', $headers, $options); var_dump($request->status_code); // int(200) var_dump($request->headers['content-type']); // string(31) "application/json; charset=utf-8" var_dump($request->body); } 

: «Запросы» не найдены в ../application/controllers/test.php в строке 34

Вам не нужно добавлять блок autoload в composer.json , в том числе библиотека в блоке require будет использовать конфигурацию автозагрузки, предоставляемую пакетом.

Обычно вы используете блок автозагрузки для настройки загрузки кода, который не установлен через пакет композитора.

Вам также необходимо require файл автозагрузки композитора, если вы еще не

 require 'vendor/autoload.php'; 

где-то, который будет запущен перед кодом, который нуждается в библиотеках композитора (как правило, он находится в процессе «начальной загрузки»)

И вам нужно запустить composer install для фактической установки настроенных зависимостей.

Существует простой способ использования запросов для PHP с помощью Codeigniter .

Вы можете выполнить следующие несколько простых шагов.

Шаг 1

Распакуйте последние запросы на PHP zip и скопируйте содержимое каталога библиотеки в {codeigniter_directory}/application/third_party/Request-{version} например, у вас есть запросы для PHP 1.6.0, а ваш проект CI находится в /usr/sites/www/myciproject затем скопируйте файлы в /usr/sites/www/myciproject/application/third_party/Requests-1.6.0 .

Шаг 2

Создайте файл PHPRequests.php в {codeigniter_directory}/application/libraries с этим контентом

 <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); require_once APPPATH."/third_party/Requests-1.6.0/Requests.php"; class PHPRequests { public function __construct() { Requests::register_autoloader(); } } 

Шаг 3

В вашем контроллере вы можете использовать Запросы, загрузив библиотеку PHPRequests, созданную нами на предыдущем шаге.

 $this->load->library('PHPRequests'); 

Подобно этой тестовой функции

 public function test() { $this->load->library('PHPRequests'); $response = Requests::get('https://github.com/timeline.json'); var_dump($response->body); } 

Надеюсь, это поможет.

HTTPFUL – лучшая библиотека после того, как я прошел через несколько механизмов http (некоторые из моих собственных :)), я нашел, что это очень полезно. http://phphttpclient.com/

и включает

 Readable HTTP Method Support (GET, PUT, POST, DELETE, HEAD, and OPTIONS) Custom Headers Automatic "Smart" Parsing Automatic Payload Serialization Basic Auth Client Side Certificate Auth Request "Templates" 

Я просто добавлю несколько замечаний к хорошо написанному ответу Гопкумара Гопалана, чтобы он работал в codeigniter 3.x.

Шаг 1

Добавьте библиотеку запросов в свой композитор.json

Шаг 2

Установка компоновщика зависимостей composer install

Шаг 3

Создайте файл PHPRequests.php в {codeigniter_directory}/application/libraries с этим контентом (обратите внимание, что есть путь к пути к библиотеке запросов)

 <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); require_once FCPATH."vendor/rmccue/requests/library/Requests.php"; class PHPRequests { public function __construct() { Requests::register_autoloader(); } } 

Шаг 4

В вашем контроллере вы можете использовать Запросы, загрузив библиотеку PHPRequests, созданную нами на предыдущем шаге.

 $this->load->library('PHPRequests'); 

Подобно этой тестовой функции

 public function test() { $this->load->library('PHPRequests'); $response = Requests::get('https://github.com/timeline.json'); var_dump($response->body); } 

Надеюсь, это поможет кому-то