[FrameworkBundle] Enable possibility to run PHP bultin server in production env

This commit is contained in:
Dariusz Górecki 2013-03-28 11:40:30 +00:00 committed by Fabien Potencier
parent ea79360fba
commit 12fce13dbb
4 changed files with 40 additions and 3 deletions

View File

@ -4,6 +4,7 @@ CHANGELOG
2.3.0
-----
* added possibility to run PHP built-in server in production environment
* added possibility to load the serializer component in the service container
* added route debug information when using the `router:match` command
* added `TimedPhpEngine`

View File

@ -78,10 +78,16 @@ EOF
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$env = $this->getContainer()->getParameter('kernel.environment');
if ('prod' === $env) {
$output->writeln('<error>Running PHP built-in server in production environment is NOT recommended!</error>');
}
$router = $input->getOption('router') ?: $this
->getContainer()
->get('kernel')
->locateResource('@FrameworkBundle/Resources/config/router.php')
->locateResource(sprintf('@FrameworkBundle/Resources/config/router_%s.php', $env))
;
$output->writeln(sprintf("Server running on <info>%s</info>\n", $input->getArgument('address')));

View File

@ -21,10 +21,10 @@
* @author: Albert Jessurum <ajessu@gmail.com>
*/
if (is_file($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SERVER['SCRIPT_NAME'])) {
if (is_file($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.$_SERVER['SCRIPT_NAME'])) {
return false;
}
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'app_dev.php';
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'app_dev.php';
require 'app_dev.php';

View File

@ -0,0 +1,30 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/*
* This file implements rewrite rules for PHP built-in web server.
*
* See: http://www.php.net/manual/en/features.commandline.webserver.php
*
* If you have custom directory layout, then you have to write your own router
* and pass it as a value to 'router' option of server:run command.
*
* @author: Michał Pipa <michal.pipa.xsolve@gmail.com>
* @author: Albert Jessurum <ajessu@gmail.com>
*/
if (is_file($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.$_SERVER['SCRIPT_NAME'])) {
return false;
}
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'app.php';
require 'app.php';