ixudra/curl ================ Custom PHP cURL library for the Laravel 4 or 5 framework - developed by [Ixudra](http://ixudra.be). 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. ```js { "require": { "ixudra/curl": "6.*" } } ``` ### Laravel 5.* Integration Add the service provider to your `config/app.php` file: ```php 'providers' => array( //... Ixudra\Curl\CurlServiceProvider::class, ), ``` Add the facade to your `config/app.php` file: ```php 'facades' => array( //... 'Curl' => Ixudra\Curl\Facades\Curl::class, ), ``` ### Laravel 4.* Integration Add the service provider to your `app/config/app.php` file: ```php 'providers' => array( //... 'Ixudra\Curl\CurlServiceProvider', ), ``` Add the facade to your `app/config/app.php` file: ```php '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: ```php $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. ```php // Send a GET request to: http://www.foo.com/bar Curl::to('http://www.foo.com/bar') ->get(); // Send a GET request to: http://www.foo.com/bar?foz=baz 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 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 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 Curl::to('http://www.foo.com/bar') ->post(); // Send a POST request to: http://www.foo.com/bar 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 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 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](http://php.net/manual/en/function.curl-setopt.php). ### 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`. ```php $curlService = new \Ixudra\Curl\CurlService(); // Send a GET request to: http://www.foo.com/bar $curlService->to('http://www.foo.com/bar') ->get(); // Send a POST request to: http://www.foo.com/bar $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](http://opensource.org/licenses/MIT) ## Contact Jan Oris (developer) - Email: jan.oris@ixudra.be - Telephone: +32 496 94 20 57