54 lines
2.0 KiB
PHP
54 lines
2.0 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2006~2015 http://thinkphp.cn All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Slince <taosikai@yeah.net>
|
|
// +----------------------------------------------------------------------
|
|
namespace think\console\command;
|
|
|
|
use think\console\Command;
|
|
use think\console\Input;
|
|
use think\console\input\Option;
|
|
use think\console\Output;
|
|
use think\facade\App;
|
|
|
|
class RunServer extends Command
|
|
{
|
|
public function configure()
|
|
{
|
|
$this->setName('run')
|
|
->addOption('host', 'H', Option::VALUE_OPTIONAL,
|
|
'The host to server the application on', '127.0.0.1')
|
|
->addOption('port', 'p', Option::VALUE_OPTIONAL,
|
|
'The port to server the application on', 8000)
|
|
->addOption('root', 'r', Option::VALUE_OPTIONAL,
|
|
'The document root of the application', App::getRootPath() . 'public')
|
|
->setDescription('PHP Built-in Server for ThinkPHP');
|
|
}
|
|
|
|
public function execute(Input $input, Output $output)
|
|
{
|
|
$host = $input->getOption('host');
|
|
$port = $input->getOption('port');
|
|
$root = $input->getOption('root');
|
|
|
|
$command = sprintf(
|
|
'php -S %s:%d -t %s %s',
|
|
$host,
|
|
$port,
|
|
escapeshellarg($root),
|
|
escapeshellarg($root . DIRECTORY_SEPARATOR . 'router.php')
|
|
);
|
|
|
|
$output->writeln(sprintf('ThinkPHP Development server is started On <http://%s:%s/>', $host, $port));
|
|
$output->writeln(sprintf('You can exit with <info>`CTRL-C`</info>'));
|
|
$output->writeln(sprintf('Document root is: %s', $root));
|
|
passthru($command);
|
|
}
|
|
|
|
}
|