CORSMiddleware   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 0
loc 26
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A __invoke() 0 7 1
1
<?php
2
3
namespace TH\Silex\CORS;
4
5
use Symfony\Component\HttpFoundation\Response;
6
use Symfony\Component\HttpFoundation\Request;
7
8
class CORSMiddleware
9
{
10
    private $origin;
11
    private $methods;
12
    private $headers;
13
14
    /**
15
     * @param string   $origin  orgin domain
16
     * @param string[] $methods methods
17
     * @param string[] $headers headers
18
     */
19
    public function __construct($origin, Array $methods, Array $headers)
20
    {
21
        $this->origin  = $origin;
22
        $this->methods = implode(', ', $methods);
23
        $this->headers = implode(', ', $headers);
24
    }
25
26
    public function __invoke(Request $request, Response $response)
27
    {
28
        $response->headers->set('Access-Control-Allow-Origin', $this->origin);
29
        $response->headers->set('Access-Control-Allow-Methods', $this->methods);
30
        $response->headers->set('Access-Control-Allow-Headers', $this->headers);
31
        return $response;
32
    }
33
}
34