<?php 
 
/* 
 * This file is part of the Symfony package. 
 * 
 * (c) Fabien Potencier <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
namespace Symfony\Component\Runtime\Runner\Symfony; 
 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpKernel\HttpKernelInterface; 
use Symfony\Component\HttpKernel\TerminableInterface; 
use Symfony\Component\Runtime\RunnerInterface; 
 
/** 
 * @author Nicolas Grekas <[email protected]> 
 */ 
class HttpKernelRunner implements RunnerInterface 
{ 
    private $kernel; 
    private $request; 
 
    public function __construct(HttpKernelInterface $kernel, Request $request) 
    { 
        $this->kernel = $kernel; 
        $this->request = $request; 
    } 
 
    public function run(): int 
    { 
        $response = $this->kernel->handle($this->request); 
        $response->send(); 
 
        if ($this->kernel instanceof TerminableInterface) { 
            $this->kernel->terminate($this->request, $response); 
        } 
 
        return 0; 
    } 
}