Differential D14028 Diff 34906 src/applications/phpast/controller/PhabricatorXHPASTViewRunController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phpast/controller/PhabricatorXHPASTViewRunController.php
| <?php | <?php | ||||
| final class PhabricatorXHPASTViewRunController | final class PhabricatorXHPASTViewRunController | ||||
| extends PhabricatorXHPASTViewController { | extends PhabricatorXHPASTViewController { | ||||
| public function handleRequest(AphrontRequest $request) { | public function handleRequest(AphrontRequest $request) { | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| if ($request->isFormPost()) { | if ($request->isFormPost()) { | ||||
| $source = $request->getStr('source'); | $source = $request->getStr('source'); | ||||
| $future = PhutilXHPASTBinary::getParserFuture($source); | $future = PhutilXHPASTBinary::getParserFuture($source); | ||||
| $resolved = $future->resolve(); | $resolved = $future->resolve(); | ||||
| // This is just to let it throw exceptions if stuff is broken. | // This is just to let it throw exceptions if stuff is broken. | ||||
| $parse_tree = XHPASTTree::newFromDataAndResolvedExecFuture( | try { | ||||
| $source, | XHPASTTree::newFromDataAndResolvedExecFuture($source, $resolved); | ||||
| $resolved); | } catch (XHPASTSyntaxErrorException $ex) { | ||||
| // This is possibly expected. | |||||
| } | |||||
| list($err, $stdout, $stderr) = $resolved; | list($err, $stdout, $stderr) = $resolved; | ||||
| $storage_tree = new PhabricatorXHPASTViewParseTree(); | $storage_tree = id(new PhabricatorXHPASTViewParseTree()) | ||||
| $storage_tree->setInput($source); | ->setInput($source) | ||||
| $storage_tree->setStdout($stdout); | ->setReturnCode($err) | ||||
| $storage_tree->setAuthorPHID($viewer->getPHID()); | ->setStdout($stdout) | ||||
| $storage_tree->save(); | ->setStderr($stderr) | ||||
| ->setAuthorPHID($viewer->getPHID()) | |||||
| ->save(); | |||||
| return id(new AphrontRedirectResponse()) | return id(new AphrontRedirectResponse()) | ||||
| ->setURI('/xhpast/view/'.$storage_tree->getID().'/'); | ->setURI('/xhpast/view/'.$storage_tree->getID().'/'); | ||||
| } | } | ||||
| $form = id(new AphrontFormView()) | $form = id(new AphrontFormView()) | ||||
| ->setUser($viewer) | ->setUser($viewer) | ||||
| ->appendChild( | ->appendChild( | ||||
| Show All 21 Lines | |||||