/home/complianthowden/public_html/vendor/php-http/client-common/src/PluginClientBuilder.php
<?php

declare(strict_types=1);

namespace Http\Client\Common;

use Http\Client\HttpAsyncClient;
use Psr\Http\Client\ClientInterface;

/**
 * Build an instance of a PluginClient with a dynamic list of plugins.
 *
 * @author Baptiste ClaviƩ <clavie.b@gmail.com>
 */
final class PluginClientBuilder
{
    /** @var Plugin[][] List of plugins ordered by priority [priority => Plugin[]]). */
    private $plugins = [];

    /** @var array Array of options to give to the plugin client */
    private $options = [];

    /**
     * @param int $priority Priority of the plugin. The higher comes first.
     */
    public function addPlugin(Plugin $plugin, int $priority = 0): self
    {
        $this->plugins[$priority][] = $plugin;

        return $this;
    }

    /**
     * @param string|int|float|bool|string[] $value
     */
    public function setOption(string $name, $value): self
    {
        $this->options[$name] = $value;

        return $this;
    }

    public function removeOption(string $name): self
    {
        unset($this->options[$name]);

        return $this;
    }

    /**
     * @param ClientInterface|HttpAsyncClient $client
     */
    public function createClient($client): PluginClient
    {
        if (!$client instanceof ClientInterface && !$client instanceof HttpAsyncClient) {
            throw new \TypeError(
                sprintf('%s::createClient(): Argument #1 ($client) must be of type %s|%s, %s given', self::class, ClientInterface::class, HttpAsyncClient::class, get_debug_type($client))
            );
        }

        $plugins = $this->plugins;

        if (0 === count($plugins)) {
            $plugins[] = [];
        }

        krsort($plugins);
        $plugins = array_merge(...$plugins);

        return new PluginClient(
            $client,
            array_values($plugins),
            $this->options
        );
    }
}
Customer Complaint Form | Howden Indonesia - Official Working Website

CUSTOMER COMPLAINT FORM

Please use this form to give us suggestions, compliments or complaints.
Click here to check complaint status.
Click here to show Term of Business Agreement
Howden


Notes: *.png, *.jpg, *.jpeg, *.pdf, *.doc, *.docx, *.xls, *.xlsx, *.ppt, *.pptx, *.eml are allowed, and size must be smaller than 5Mb.

Copyright © 2026 PT. Howden Insurance Brokers Indonesia. All rights reserved.
Authorised and regulated by Otoritas Jasa Keuangan (OJK).
Member of The Association of Indonesian Insurance & Reinsurance Brokers (APPARINDO).