Skip to content

Commit

Permalink
Fixed issue codeigniter4#1880, fixed a few typos and updated codestyle
Browse files Browse the repository at this point in the history
  • Loading branch information
louisl committed Mar 27, 2019
1 parent 8df57df commit 3f0524f
Showing 1 changed file with 68 additions and 19 deletions.
87 changes: 68 additions & 19 deletions system/Commands/Server/Serve.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?php

/**
* CodeIgniter
*
Expand Down Expand Up @@ -46,50 +45,100 @@
*
* Not testable, as it throws phpunit for a loop :-/
*
* @package CodeIgniter\Commands\Server
*
* @codeCoverageIgnore
*/
class Serve extends BaseCommand
{
/**
* Minimum PHP version
*
* @var string
*/
protected $minPHPVersion = '7.2';

protected $group = 'CodeIgniter';
protected $name = 'serve';
protected $description = 'Launchs the CodeIgniter PHP-Development Server.';
protected $usage = 'serve';
protected $arguments = [];
protected $options = [
/**
* Group
*
* @var string
*/
protected $group = 'CodeIgniter';

/**
* Name
*
* @var string
*/
protected $name = 'serve';

/**
* Description
*
* @var string
*/
protected $description = 'Launches the CodeIgniter PHP-Development Server.';

/**
* Usage
*
* @var string
*/
protected $usage = 'serve';

/**
* Arguments
*
* @var array
*/
protected $arguments = [];

/**
* Options
*
* @var array
*/
protected $options = [
'-php' => 'The PHP Binary [default: "PHP_BINARY"]',
'-host' => 'The HTTP Host [default: "localhost"]',
'-port' => 'The HTTP Host Port [default: "8080"]',
];

/**
* Run the server
*
* @param array $params Parameters
*
* @return void
*/
public function run(array $params)
{
// Valid PHP Version?
if (phpversion() < $this->minPHPVersion)
{
die("You PHP version must be {$this->minPHPVersion} or higher to run CodeIgniter. Current version: " . phpversion());
die('Your PHP version must be ' . $this->minPHPVersion .
' or higher to run CodeIgniter. Current version: ' . phpversion());
}

// Collect any user-supplied options and apply them
$php = CLI::getOption('php') ?? PHP_BINARY;
$host = CLI::getOption('host') ?? 'localhost';
$port = CLI::getOption('port') ?? '8080';
// Collect any user-supplied options and apply them.
$php = escapeshellarg(CLI::getOption('php')) ?? PHP_BINARY;
$host = escapeshellarg(CLI::getOption('host')) ?? 'localhost';
$port = escapeshellarg(CLI::getOption('port')) ?? '8080';

// Get the party started
CLI::write("CodeIgniter development server started on http://{$host}:{$port}", 'green');
// Get the party started.
CLI::write('CodeIgniter development server started on http://' . $host . ':' . $port, 'green');
CLI::write('Press Control-C to stop.');

// Set the Front Controller path as Document Root
$docroot = FCPATH;
// Set the Front Controller path as Document Root.
$docroot = escapeshellarg(FCPATH);

// Mimic Apache's mod_rewrite functionality with user settings
$rewrite = __DIR__ . '/rewrite.php';
// Mimic Apache's mod_rewrite functionality with user settings.
$rewrite = escapeshellarg(__DIR__ . '/rewrite.php');

// Call PHP's built-in webserver, making sure to set our
// base path to the public folder, and to use the rewrite file
// to ensure our environment is set and it simulates basic mod_rewrite.
passthru("{$php} -S {$host}:{$port} -t {$docroot} {$rewrite}");
passthru($php . ' -S ' . $host . ':' . $port . ' -t ' . $docroot . ' ' . $rewrite);
}

}

0 comments on commit 3f0524f

Please sign in to comment.