ion-bazan/guzzle-bundle-aliyun-signer-plugin

Alibaba Cloud API Gateway request signing plugin for Guzzle Bundle ⛽️


Keywords
framework, symfony, http, plugin, bundle, Guzzle, middleware, signature, hmac, aliyun, api gateway, alibaba, Alibaba cloud
License
MIT

Documentation

Guzzle Bundle Alibaba Cloud API Gateway HTTP Request Signer Plugin

Latest version GitHub Workflow Status PHP version Codecov Mutation testing badge Scrutinizer Code Quality Downloads License

Description

This Guzzle Bundle plugin integrates ion-bazan/aliyun-http-signer with Symfony.

Requirements

Installation

Use Composer to install the plugin using:

composer require ion-bazan/guzzle-bundle-aliyun-signer-plugin

Usage

Enable the Bundle

Symfony 2.x and 3.x

Register the bundle in app/AppKernel.php file:

new EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle([
    new IonBazan\Bundle\GuzzleBundleAliyunSignerPlugin\AliyunRequestSignerPlugin(),
]);

Symfony 4+

To register the plugin in Symfony 4 and newer, replace registerBundles() method in src/Kernel.php:

public function registerBundles(): iterable
{
    $contents = require $this->getProjectDir().'/config/bundles.php';
    foreach ($contents as $class => $envs) {
        if ($envs[$this->environment] ?? $envs['all'] ?? false) {
            if ($class === \EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle::class) {
                yield new $class([
                    new \IonBazan\Bundle\GuzzleBundleAliyunSignerPlugin\AliyunRequestSignerPlugin(),
                ]);
            } else {
                yield new $class();
            }
        }
    }
}

Configuration

# config/packages/eight_points_guzzle.yaml
eight_points_guzzle:
    clients:
        my_client:
            base_url: "http://target.url"
            plugin:
                aliyun_signer:
                    app_id: 'Your AppID'
                    secret: 'Your Secret'

Bugs & issues

If you found a bug or security vulnerability, please open an issue

Contributing

Please feel free to submit Pull Requests adding new features or fixing bugs.

Please note that code must follow PSR-1, PSR-2, PSR-4 and PSR-7.