gregurco / guzzle-bundle-wsse-plugin
WSSE Plugin for Guzzle Bundle, a PHP HTTP client library and framework for building RESTful web service clients
Installs: 28 229
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- php: ^7.0
- eightpoints/guzzle-bundle: ~7.0
- guzzlehttp/guzzle: ^6.0
- symfony/config: ~2.7|~3.0|~4.0
- symfony/dependency-injection: ~2.7|~3.0|~4.0
- symfony/expression-language: ~2.7|~3.0|~4.0
- symfony/http-kernel: ~2.7|~3.0|~4.0
Requires (Dev)
- phpunit/phpunit: ~6.1
- satooshi/php-coveralls: ~1.0
This package is auto-updated.
Last update: 2024-10-05 18:36:31 UTC
README
This plugin integrates WSSE functionality into Guzzle Bundle, a bundle for building RESTful web service clients.
Requirements
- PHP 7.0 or above
- Guzzle Bundle
Installation
Using composer:
composer.json
{ "require": { "gregurco/guzzle-bundle-wsse-plugin": "dev-master" } }
command line
$ composer require gregurco/guzzle-bundle-wsse-plugin
Usage
Enable bundle
Symfony 2.x and 3.x
Plugin will be activated/connected through bundle constructor in app/AppKernel.php
, like this:
new EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle([ new Gregurco\Bundle\GuzzleBundleWssePlugin\GuzzleBundleWssePlugin(), ])
Symfony 4
The registration of bundles was changed in Symfony 4 and now you have to change src/Kernel.php
to achieve the same functionality.
Find next lines:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { yield new $class(); } }
and replace them by:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { if ($class === \EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle::class) { yield new $class([ new \Gregurco\Bundle\GuzzleBundleWssePlugin\GuzzleBundleWssePlugin(), ]); } else { yield new $class(); } } }
Basic configuration
# app/config/config.yml eight_points_guzzle: clients: api_payment: base_url: "http://api.domain.tld" # define headers, options # plugin settings plugin: wsse: username: "acme" password: "pa55w0rd" created_at: "-10 seconds" # optional
Usage with guzzle
<?php # Optional: Set third parameter by a expression (if not, current time will be used automatically) # http://php.net/manual/en/datetime.formats.relative.php # Useful if there is a small difference of time between client and server # DateTime object will be regenerated for every request $wsse = new \Gregurco\Bundle\GuzzleBundleWssePlugin\Middleware\WsseAuthMiddleware($username, $password); $stack = \GuzzleHttp\HandlerStack::create(); // Add the wsse middleware to the handler stack. $stack->push($wsse->attach()); $client = new \GuzzleHttp\Client(['handler' => $stack]); $response = $client->get('http://www.8points.de');
License
This middleware is licensed under the MIT License - see the LICENSE file for details