An elegant PHP HTTP client for sending HTTP requests.
php 7.1+
OpenSSL
cURL
This library can easily be installed using composer. Run the command below:
composer require coderatio/curler
Because this is built with simplicity in mind from the beginning, below is how easy you can make a get request to another server.
require 'vendor/autoload.php';
$curler = new \Coderatio\Curler\Curler();
$curler->get('https://jsonplaceholder.typicode.com/todos');
$response = $curler->getResponse();
$data = [
'title' => 'Sample post',
'body' => 'This is a sample post',
'userId' => 1
];
$curler = new \Coderatio\Curler\Curler();
$request = $curler->post('https://jsonplaceholder.typicode.com/posts', $data);
$response = $curler->getResponse();
Sending form data via curler is as simple sending a post
request. Just send an array of your form data and curler will take care of the rest. Take a look below:
$data = [
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'johndoe@example.com'
];
$curler = new \Coderatio\Curler\Curler();
$request = $curler->postForm('https://example.com/store-user', $data);
$response = $curler->getResponse();
By default, the $response
variable will hold a json object of the request. But, there are instances where you want the response in php object or array. You can get them as below:
$response = $curler->getResponse()->asObject();
OR
$response = $curler->getResponse()->asArray();
- PUT
- DELETE
- DOWNLOAD
- OPTIONS
- HEAD
- TRACE
Just as you use the post, get, postForm e.t.c, you can also use the put
, delete
, download
, options
, head
, and trace
methods.
Sometimes, you may need to send your request with custom headers. Curler, has full support for that and many more. Here is how it can be done.
$curler = new \Coderatio\Curler\Curler();
$curler->appendRequestHeader('Content-Type', 'application/json');
$curler->post('https://jsonplaceholder.typicode.com/posts', $data);
$response = $curler->getResponse();
$curler = new \Coderatio\Curler\Curler();
$curler->appendRequestHeaders([
'Content-Type' => 'application/xml',
'x-access-token' => 'xxxxxxxxxx'
]);
$curler->post('https://jsonplaceholder.typicode.com/posts', $data);
$response = $curler->getResponse();
Sometimes, you may like to get the status code returned from a request. This can easily be done with curler as below:
$curler->statuseCode;
Since this package is built with flexibility in mind, adding cURL options should be a breeze. Here is how you can add options:
$curler->addCurlOption('CURLOPT_PUT', true); // Single
// OR
$curler->addCurlOptions([
'CURLOPT_PUT' => true,
'CURLOPT_POSTFIELDS' => []
]);
To be a contributor, kindly fork the repo, add or fix bugs and send a pull request.
To contribute to this project, kindly fork it and send a pull request or find me on Twitter.
This project is licenced with the MIT license.