Skip to content

coderatio/curler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curler

An elegant PHP HTTP client for sending HTTP requests.

Requirements

  • php 7.1+
  • OpenSSL
  • cURL

Installation

This library can easily be installed using composer. Run the command below:

composer require coderatio/curler

GET

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();

POST

$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();

POST FORM

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();

Other Request Methods

  1. PUT
  2. DELETE
  3. DOWNLOAD
  4. OPTIONS
  5. HEAD
  6. 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.


Adding Custom Headers

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.

  • Single Header

$curler = new \Coderatio\Curler\Curler();
$curler->appendRequestHeader('Content-Type', 'application/json');
$curler->post('https://jsonplaceholder.typicode.com/posts', $data);

$response = $curler->getResponse();
  • Multiple headers

$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();

Get Status Code

Sometimes, you may like to get the status code returned from a request. This can easily be done with curler as below:

$curler->statuseCode;

Add cURL options

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' => []
]);

Contributors

To be a contributor, kindly fork the repo, add or fix bugs and send a pull request.

Contribution

To contribute to this project, kindly fork it and send a pull request or find me on Twitter.

License

This project is licenced with the MIT license.

About

An elegant PHP HTTP client for sending HTTP requests.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages