forked from reactjs/react-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.php
36 lines (32 loc) · 1.11 KB
/
server.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$scriptInvokedFromCli =
isset($_SERVER['argv'][0]) && $_SERVER['argv'][0] === 'server.php';
if($scriptInvokedFromCli) {
echo 'starting server on port 3000' . PHP_EOL;
exec('php -S localhost:3000 -t public server.php');
} else {
return routeRequest();
}
function routeRequest()
{
$comments = file_get_contents('comments.json');
switch($_SERVER["REQUEST_URI"]) {
case '/':
echo file_get_contents('./public/index.html');
break;
case '/comments.json':
if($_SERVER['REQUEST_METHOD'] === 'POST') {
$commentsDecoded = json_decode($comments, true);
$commentsDecoded[] = ['author' => $_POST['author'],
'text' => $_POST['text']];
$comments = json_encode($commentsDecoded, JSON_PRETTY_PRINT);
file_put_contents('comments.json', $comments);
}
header('Content-Type: application/json');
header('Cache-Control: no-cache');
echo $comments;
break;
default:
return false;
}
}