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(); |
|
|
|
|
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
|
|
|
|