PassThrough   A
last analyzed

Complexity

Total Complexity 15

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 15
eloc 23
dl 0
loc 45
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
F handle() 0 35 15
1
<?php
2
3
namespace App\Http\Middleware;
4
5
use Closure;
6
use Illuminate\Http\Response;
7
use sfContext;
8
9
class PassThrough
10
{
11
    /**
12
     * Handle an incoming request.
13
     *
14
     * @param  \Illuminate\Http\Request $request
15
     * @param  \Closure $next
16
     *
17
     * @return mixed
18
     */
19
    public function handle($request, Closure $next)
20
    {
21
        // fire up symfony
22
        if (! defined('SF_APP')) {
23
            define('SF_APP', 'frontend');
24
            define('SF_ENVIRONMENT', env('SF_ENVIRONMENT', 'prod'));
25
            define('SF_DEBUG', env('SF_DEBUG', 'false'));
26
        }
27
        if (! defined('SF_ROOT_DIR')) {
28
            define('SF_ROOT_DIR', env('SF_ROOT_DIR'));
29
        }
30
31
        $_SERVER['HTTP_HOST']       = (empty($_SERVER['HTTP_HOST'])) ? $request->getHost() : $_SERVER['HTTP_HOST'];
32
        $_SERVER['SERVER_NAME']     = (empty($_SERVER['SERVER_NAME'])) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
33
        $_SERVER['SERVER_PORT']     = (empty($_SERVER['SERVER_PORT'])) ? 80 : $_SERVER['SERVER_PORT'];
34
        $_SERVER['HTTP_USER_AGENT'] = (empty($_SERVER['HTTP_USER_AGENT'])) ? 'PHP5/CLI' : $_SERVER['HTTP_USER_AGENT'];
35
        $_SERVER['REMOTE_ADDR']     = (empty($_SERVER['REMOTE_ADDR'])) ? '127.0.0.1' : $_SERVER['REMOTE_ADDR'];
36
        $_SERVER['REQUEST_METHOD']  = (empty($_SERVER['REQUEST_METHOD'])) ? strtoupper($request->getMethod()) : $_SERVER['REQUEST_METHOD'];
37
        $_SERVER['PATH_INFO']       = (empty($_SERVER['PATH_INFO'])) ? $request->getPathInfo() : $_SERVER['PATH_INFO'];
38
        $_SERVER['REQUEST_URI']     = (empty($_SERVER['REQUEST_URI'])) ? $request->getUri() : $_SERVER['REQUEST_URI'];
39
        $_SERVER['SCRIPT_NAME']     = (empty($_SERVER['SCRIPT_NAME'])) ? '/index.php' : $_SERVER['SCRIPT_NAME'];
40
        $_SERVER['SCRIPT_FILENAME'] = (empty($_SERVER['SCRIPT_FILENAME'])) ? '/index.php' : $_SERVER['SCRIPT_FILENAME'];
41
        $_SERVER['QUERY_STRING']    = (empty($_SERVER['QUERY_STRING'])) ? $request->getQueryString() : $_SERVER['QUERY_STRING'];
42
        require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
43
        //let symfony handle/render the request
44
45
        /** @var \sfWebResponse $symfonyResponse */
46
        $symfonyResponse = sfContext::getInstance()->getController()->dispatch();
0 ignored issues
show
Bug Best Practice introduced by
The method sfContext::getInstance() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

46
        $symfonyResponse = sfContext::/** @scrutinizer ignore-call */ getInstance()->getController()->dispatch();
Loading history...
47
        //throw away the symfony rendered buffer
48
        while (ob_get_level()) {
49
            ob_end_clean();
50
        }
51
52
        //make a new laravel response object and assign the content generated from symfony
53
        return new Response($symfonyResponse->getContent());
54
    }
55
}
56