e-moe / guzzle6-bundle
Integrates Guzzle 6 into your Symfony application
Installs: 245 677
Dependents: 1
Suggesters: 0
Security: 0
Stars: 11
Watchers: 1
Forks: 11
Open Issues: 5
Type:symfony-bundle
Requires
- php: >=7.2.5
- guzzlehttp/guzzle: ^6.0
- symfony/framework-bundle: ^5.0
- symfony/stopwatch: ^5.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpmd/phpmd: ^2.3
- phpunit/phpunit: ^5.1
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^3.3
- symfony/monolog-bundle: ^2.7
Suggests
- symfony/monolog-bundle: Log requests
README
This bundle integrates Guzzle 6.x into Symfony. Guzzle is a PHP framework for building RESTful web service clients.
Requirements
- PHP 5.6 or above
- Symfony 2.7 or above (including Symfony 3.x, 4.x, 5.x)
Installation
To install this bundle, run the command below and you will get the latest version by Packagist.
composer require e-moe/guzzle6-bundle
To use the newest (maybe unstable) version please add following into your composer.json:
{ "require": { "e-moe/guzzle6-bundle": "dev-master" } }
Usage
Load bundle in AppKernel.php (should be done automatically if you are using Symfony Flex):
new Emoe\GuzzleBundle\EmoeGuzzleBundle(),
Configuration in config.yml (optional):
emoe_guzzle: log: enabled: true # Logging requests to Monolog format: 'Guzzle: [{ts}] "{method} {uri} HTTP/{version}" {code}' # Optional log format customization
see more about log format syntax.
Using Guzzle in controllers:
$client = $this->get('guzzle.client'); $response = $client->get('http://example.com');
Using Guzzle in your own services:
application.my_service: class: App\Service\MyService arguments: - "@guzzle.client"
or you can just use autowire feature with GuzzleHttp\ClientInterface
type hint.
Features
Symfony Debug Profiler
Symfony Debug Timeline
Symfony Debug Toolbar
Symfony Debug Logs (Monolog Integration)
Suggestions
Adding aliases: If you want to use different names for provided services you can use aliases. This is a good idea if you don't want have any dependency to guzzle in your service name.
services: http.client: alias: guzzle.client
Creating multiple clients: If you want to have different Guzzle clients in your application all you need is to define them in services file and add "guzzle.client" tag to turn on Symfony integration (Debug toolbar, logs, so on..).
services: guzzle.client_one: class: GuzzleHttp\Client tags: - { name: guzzle.client } guzzle.client_two: class: GuzzleHttp\Client tags: - { name: guzzle.client }
Authors
- Nikolay Labinskiy aka e-moe
Inspired by Chris Wilkinson's and Florian Preusner's GuzzleBundles (1, 2).
See also the list of contributors who participated in this project.
License
This bundle is released under the MIT license