MethodNotAllowedHttpException   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 1
dl 0
loc 56
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 14 1
A setValidMethods() 0 6 1
A getValidMethods() 0 4 1
1
<?php
2
3
/*
4
 * http-exception (https://github.com/juliangut/http-exception).
5
 * HTTP aware exceptions.
6
 *
7
 * @license BSD-3-Clause
8
 * @link https://github.com/juliangut/http-exception
9
 * @author Julián Gutiérrez <[email protected]>
10
 */
11
12
declare(strict_types=1);
13
14
namespace Jgut\HttpException;
15
16
use Fig\Http\Message\StatusCodeInterface;
17
18
/**
19
 * HTTP 405 Method Not Allowed exception class.
20
 */
21
class MethodNotAllowedHttpException extends HttpException
22
{
23
    /**
24
     * Valid HTTP methods.
25
     *
26
     * @var array
27
     */
28
    protected $validMethods = [];
29
30
    /**
31
     * Method Not Allowed Exception constructor.
32
     *
33
     * @param string|null     $message
34
     * @param string|null     $description
35
     * @param int|null        $code
36
     * @param \Throwable|null $previous
37
     */
38
    public function __construct(
39
        string $message = null,
40
        string $description = null,
41
        int $code = null,
42
        \Throwable $previous = null
43
    ) {
44
        parent::__construct(
45
            $message ?? 'Method Not Allowed',
46
            $description ?? '',
47
            $code ?? StatusCodeInterface::STATUS_METHOD_NOT_ALLOWED,
48
            StatusCodeInterface::STATUS_METHOD_NOT_ALLOWED,
49
            $previous
50
        );
51
    }
52
53
    /**
54
     * Set valid HTTP methods.
55
     *
56
     * @param array $validMethods
57
     *
58
     * @return static
59
     */
60
    public function setValidMethods(array $validMethods): self
61
    {
62
        $this->validMethods = $validMethods;
63
64
        return $this;
65
    }
66
67
    /**
68
     * Get valid HTTP methods.
69
     *
70
     * @return array
71
     */
72
    public function getValidMethods(): array
73
    {
74
        return $this->validMethods;
75
    }
76
}
77