Custom PHP curl library for the Laravel 5 framework - developed by Ixudra
fork from : https://github.com/ixudra/curl.git

Jan Oris 7549fb1117 Merge pull request #10 from Vugario/with-header-return-this 9 vuotta sitten
public 1c66cf5e88 Added package files 11 vuotta sitten
src d93932f4f3 withHeader method did not return the current instance. 9 vuotta sitten
tests 1c66cf5e88 Added package files 11 vuotta sitten
.gitignore d0b00d6aca Added composer.lock file to repository 11 vuotta sitten
.travis.yml 1c66cf5e88 Added package files 11 vuotta sitten
LICENSE 15aedaa164 Updated license and readme files 11 vuotta sitten
README.md a80d6b7ade Updated code samples for more clarity 9 vuotta sitten
composer.json 0d333ee17b Fixes to accomodate cURL options with underscores 9 vuotta sitten
composer.lock 4292916b9c Updated readme 10 vuotta sitten
phpunit.xml 1c66cf5e88 Added package files 11 vuotta sitten

README.md

ixudra/curl

Custom PHP cURL library for the Laravel 4 or 5 framework - developed by Ixudra.

This package can be used by anyone at any given time, but keep in mind that it is optimized for my personal custom workflow. It may not suit your project perfectly and modifications may be in order.

Installation

Pull this package in through Composer.


    {
        "require": {
            "ixudra/curl": "6.*"
        }
    }

Laravel 5.* Integration

Add the service provider to your config/app.php file:


    'providers'     => array(

        //...
        Ixudra\Curl\CurlServiceProvider::class,

    ),

Add the facade to your config/app.php file:


    'facades'       => array(

        //...
        'Curl'          => Ixudra\Curl\Facades\Curl::class,

    ),

Laravel 4.* Integration

Add the service provider to your app/config/app.php file:


    'providers'     => array(

        //...
        'Ixudra\Curl\CurlServiceProvider',

    ),

Add the facade to your app/config/app.php file:


    'facades'       => array(

        //...
        'Curl'          => 'Ixudra\Curl\Facades\Curl',

    ),

Integration without Laravel

Create a new instance of the CurlService where you would like to use the package:


    $curlService = new \Ixudra\Curl\CurlService();

Usage

Laravel usage

The package provides an easy interface for sending cURL requests from your application. The package provides a fluent interface similar the Laravel query builder to easily configure the request. There are several utility methods that allow you to easily add certain options to the request. If no utility method applies, you can also use the general withOption method.

In order to send the request, you need to use the method which matches the HTTP method of the request you are trying to send. Currently, only the GET and POST method are supported. PUT and DELETE will be added in the near future.


    // Send a GET request to: http://www.foo.com/bar
    $response = Curl::to('http://www.foo.com/bar')
        ->get();

    // Send a GET request to: http://www.foo.com/bar?foz=baz
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->get();

    // Send a GET request to: http://www.foo.com/bar?foz=baz using JSON
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->asJson()
        ->get();

    // Send a GET request to: http://www.foo.com/bar?foz=baz using JSON over SSL
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->withOption('SSL_VERIFYPEER', false)
        ->get();

    // Send a POST request to: http://www.foo.com/bar
    $response = Curl::to('http://www.foo.com/bar')
        ->post();

    // Send a POST request to: http://www.foo.com/bar
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->post();

    // Send a POST request to: http://www.foo.com/bar with arguments 'foz' = 'baz' using JSON
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->asJson()
        ->post();

    // Send a POST request to: http://www.foo.com/bar with arguments 'foz' = 'baz' using JSON over SSL
    $response = Curl::to('http://www.foo.com/bar')
        ->withData( array( 'foz' => 'baz' ) )
        ->withOption('SSL_VERIFYPEER', false)
        ->post();

The package will automatically prepend the options with the CURLOPT_ prefix. It is worth noting that the package does not perform any validation on the cURL options. Additional information about available cURL options can be found here.

Usage without Laravel

Usage without Laravel is identical to usage described previously. The only difference is that you will not be able to use the facades to access the CurlService.


    $curlService = new \Ixudra\Curl\CurlService();

    // Send a GET request to: http://www.foo.com/bar
    $response = $curlService->to('http://www.foo.com/bar')
        ->get();
        
    // Send a POST request to: http://www.foo.com/bar
    $response = $curlService->to('http://www.foo.com/bar')
        ->post();

Planning

  • Add PUT and DELETE method
  • Add additional utility methods for other cURL options
  • Add contract to allow different HTTP providers such as Guzzle

License

This template is open-sourced software licensed under the MIT license

Contact

Jan Oris (developer)