Skip to content

Commit 6768409

Browse files
committed
added headers and arguments for browser usage
Added CORS headers, added --no-io flag
1 parent 1b76a53 commit 6768409

3 files changed

Lines changed: 35 additions & 7 deletions

File tree

bin/server.php

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
11
#!/usr/bin/env php
22
<?php
33

4+
use React\Http\Response;
5+
use React\Http\Request;
6+
47
require "app/config/bin.php";
58
require "vendor/autoload.php";
6-
$app = new App;
7-
$handler = function ($request, $response) use ($app){
9+
10+
$noFsIO = false;
11+
12+
foreach($argv AS $arg){
13+
if($arg === '--no-io'){
14+
$noFsIO = true;
15+
}
16+
}
17+
18+
$app = new App($noFsIO);
19+
$handler = function ($request, Response $response) use ($app){
820
$start = microtime(1);
921
printf("%s %s\n", $request->getMethod(), $request->getPath());
22+
if($request->getMethod() !== 'POST'){
23+
$app->setResponseHeaders($response);
24+
$response->end('');
25+
return;
26+
}
1027
$headers = $request->getHeaders();
1128
$body = new \stdClass;
1229
$body->data = "";

src/App.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,27 @@
22

33
use Entity\Project;
44
use Entity\Index;
5+
use Command\ErrorCommand;
56

67
class App {
78
private $router;
89
private $container;
910
private $projectsPool = [];
1011
private $currentProject = null;
12+
private $noFsIO = false;
1113

12-
public function __construct(){
14+
public function __construct($noFsIO){
15+
$this->noFsIO = $noFsIO;
1316
$this->router = new Router;
1417
}
1518
public function handle($request, $response, $data){
1619
$command = $this->getRouter()
1720
->getCommand(
1821
$this->getCommandName($request)
1922
);
23+
if($command instanceof ErrorCommand){
24+
return $command->run([]);
25+
}
2026
$this->container = $command->getContainer();
2127
$arguments = $this->parseQuery($request->getQuery(), $data);
2228
$arguments["project"] = $this->loadProject($arguments);
@@ -59,7 +65,9 @@ protected function loadProject($arguments){
5965
$project = $this->projectsPool[$rootDir];
6066
}
6167
else{
62-
$project = $this->container->get("IO\Reader")->read($rootDir);
68+
if(!$this->noFsIO){
69+
$project = $this->container->get("IO\Reader")->read($rootDir);
70+
}
6371
if(empty($project)){
6472
$project = $this->createEmptyProject($rootDir);
6573
}
@@ -73,10 +81,13 @@ protected function createEmptyProject($rootDir){
7381
$project = new Project(new Index, $rootDir);
7482
return $project;
7583
}
76-
protected function setResponseHeaders($response){
84+
public function setResponseHeaders($response){
7785
try {
7886
$response->writeHead(200, [
79-
'content-type' => 'application/json'
87+
'Content-Type' => 'application/json',
88+
'Access-Control-Allow-Headers' => 'Origin, Content-Type',
89+
'Access-Control-Allow-Origin' => '*',
90+
'Origin' => 'http://localhost:10000'
8091
]);
8192
}
8293
catch(\Exception $e){

src/Complete/CompleteEngine.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function createCompletion(
6969
, (microtime(1) - $start)));
7070
}
7171
elseif(!empty($content)) {
72-
$this->updateFileIndex($project, $content, $file);
72+
$this->processFileContent($project, $content, $line, $file);
7373
}
7474

7575
return [

0 commit comments

Comments
 (0)