src/HeadersInterface.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace Pluf\Http;

use InvalidArgumentException;

/**
 * Headers Interface
 *
 * @since 7.0.0
 */
interface HeadersInterface
{

    /**
     * Add header value
     *
     * This method appends the value to the existing array of values
     *
     * @param string $name
     * @param array|string $value
     *
     * @return HeadersInterface
     *
     * @throws InvalidArgumentException
     */
    public function addHeader($name, $value): HeadersInterface;

    /**
     * Remove header value
     *
     * @param string $name
     * @return HeadersInterface
     */
    public function removeHeader(string $name): HeadersInterface;

    /**
     * Get header value or values.
     * If the array has a single value it will return that single value.
     * If the array has multiple values, it will return an array of values.
     *
     * @param string $name
     * @param string[] $default
     *
     * @return array
     */
    public function getHeader(string $name, $default = []): array;

    /**
     * Replaces the existing header value with the new value.
     *
     * @param string $name
     * @param array|string $value
     *
     * @return HeadersInterface
     *
     * @throws InvalidArgumentException
     */
    public function setHeader($name, $value): HeadersInterface;

    /**
     * Replaces all existing headers with the new values.
     *
     * @param array $headers
     *
     * @return HeadersInterface
     *
     * @throws InvalidArgumentException
     */
    public function setHeaders(array $headers): HeadersInterface;

    /**
     * Is the header present in the stack.
     *
     * @param string $name
     * @return bool
     */
    public function hasHeader(string $name): bool;

    /**
     * Return all headers in the stack.
     *
     * @param bool $originalCase
     *
     * @return array
     */
    public function getHeaders(bool $originalCase): array;
}