Download the PHP package apitoolkits/curl without Composer
On this page you can find all versions of the php package apitoolkits/curl. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download apitoolkits/curl
More information about apitoolkits/curl
Files in apitoolkits/curl
Package curl
Short Description Custom PHP Curl library for the Laravel framework - developed by Apitoolkits
License MIT
Homepage http://apitoolkits.com
Informations about the package curl
apitoolkits/curl
Custom PHP cURL library for the Laravel 4 or 5 framework - developed by apitoolkits.
The package provides an easy interface for sending cURL requests from your PHP web application. The package provides an intuitive, fluent interface similar the Laravel query builder to easily configure the request. Additionally, There are several utility methods that allow you to easily add certain options to the request. This makes it easier to create and use cURL requests and also makes your code more comprehensible.
The provided functionality is completely framework-independent but also contains a Laravel service provider for easy integration into your Laravel project.
Note before posting an issue: When posting an issue for the package, always be sure to provide as much information regarding the request as possible. This includes the example cURL request you are trying to transfer into the package syntax, your actual package syntax (the full request) and (if possible) an example URL I can use to test the request myself if need be.
Installation
Pull this package in through Composer.
or run in terminal:
composer require apitoolkits/curl
Laravel 5.5+ Integration
Laravel's package discovery will take care of integration for you.
Laravel 5.* Integration
Add the service provider to your config/app.php
file:
Add the facade to your config/app.php
file:
Laravel 4.* Integration
Add the service provider to your app/config/app.php
file:
Add the facade to your app/config/app.php
file:
Lumen 5.* integration
In your bootstrap/app.php
, make sure you've un-commented the following line (around line 26):
Then, register your class alias:
Finally, you have to register your ServiceProvider (around line 70-80):
Integration without Laravel
Create a new instance of the CurlService
where you would like to use the package:
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.
Sending GET requests
In order to send a GET
request, you need to use the get()
method that is provided by the package:
Sending POST requests
Post requests work similar to GET
requests, but use the post()
method instead:
Sending PUT requests
Put requests work similar to POST
requests, but use the put()
method instead:
Sending PATCH requests
Patch requests work similar to POST
requests, but use the patch()
method instead:
Sending DELETE requests
Delete requests work similar to GET
requests, but use the delete()
method instead:
Sending custom headers
Sending custom headers is easy with the withHeader()
method. Multiple calls can be chained together to add multiple headers to the request:
Alternatively, you can use the withHeaders()
to combine multiple headers into one method call:
Specifying the content type
Sending custom headers is easy with the withcontentType()
method. Multiple calls can be chained together to add multiple headers to the request:
Sending files via Curl
For sending files via a POST request, you can use the withFile
method to correctly format a request before sending:
You can add as many files to the request as you want. A couple of things to keep in mind:
- When submitting files, the
asJson()
method andasJsonRequest()
method cannot be used. If you do, the files will not be transferred correctly - The files are added to the data that was provided in the
withData()
method using the first parameter of thewithFile()
method. If this key already exists, it will be overridden.
Downloading files
For downloading a file, you can use the download()
method:
Using response objects
By default, the package will only return the content of the request. In some cases, it might also be useful to know
additional request information, such as the HTTP status code and error messages should they occur. In this case, you
can use the returnResponseObject()
method, which will return an stdClass that contains additional information as
well as the response content:
The response object will look like this:
Debugging requests
In case a request fails, it might be useful to get debug the request. In this case, you can use the enableDebug()
method.
This method uses one parameter, which is the name of the file in which the debug information is to be stored:
Using cURL options
You can add various cURL options to the request using of several utility methods such as withHeader()
for adding a
header to the request, or use the general withOption()
method if no utility method applies. 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.
Method | Default value | Description |
---|---|---|
withTimeout() | 30 seconds | Set the timeout of the request (integer or float) |
allowRedirect() | false | Allow the request to be redirected internally |
asJsonRequest() | false | Submit the request data as JSON |
asJsonResponse() | false | Decode the response data from JSON |
asJson() | false | Utility method to set both asJsonRequest() and asJsonResponse() at the same time |
withHeader() | array | Add an HTTP header to the request |
withHeaders() | array | Add multiple HTTP headers to the request |
withContentType() | none | Set the content type of the response |
withFile() | none | Add a file to the form data to be sent |
containsFile() | false | Should be used to submit files through forms |
withData() | array | Add an array of data to sent with the request (GET or POST) |
setCookieFile() | none | Set a file to read cookies from |
setCookieJar() | none | Set a file to store cookies in |
withOption() | none | Generic method to add any cURL option to the request |
For specific information regarding parameters and return types, I encourage you to take a look at
Apitoolkits\curl\src\Apitoolkits\Curl\Builder.php
. This class has extensive doc blocks that contain all the necessary information
for each specific method.
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
.
Planning
- Add additional utility methods for other cURL options
- Add contract to allow different HTTP providers such as Guzzle
Support
Help me further develop and maintain this package by supporting me via (http://apitoolkits.com)!!
License
This package is open-sourced software licensed under the MIT license
Contact
For package questions, bug, suggestions and/or feature requests, please use the Github issue system and/or submit a pull request. When submitting an issue, always provide a detailed explanation of your problem, any response or feedback your get, log messages that might be relevant as well as a source code example that demonstrates the problem. If not, I will most likely not be able to help you with your problem. Please review the contribution guidelines before submitting your issue or pull request.
For any other questions, feel free to use the credentials listed below:
(developer)
- Email: [email protected]