diff options
Diffstat (limited to 'demos/soap/protected/webservices')
-rw-r--r-- | demos/soap/protected/webservices/SimpleService.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/demos/soap/protected/webservices/SimpleService.php b/demos/soap/protected/webservices/SimpleService.php new file mode 100644 index 00000000..e59546bb --- /dev/null +++ b/demos/soap/protected/webservices/SimpleService.php @@ -0,0 +1,89 @@ +<?php +class SimpleService +{ + private $errors = array(); + + /** + * Highlights a string as php code + * @param string $input The php code to highlight + * @return string The highlighted text. + * @soapmethod + */ + public function highlight($input) + { + return highlight_string($input, true); + } + + /** + * Given a left side, operation, and right side of an operation, will + * return the result of computing the equation. + * @param string $leftSide The left side of an equation + * @param string $operation The operation to perform + * @param string $rightSide The right side of the equation + * @return ComputationResult The result of the computation + * @soapmethod + */ + public function compute($leftSide, $operation, $rightSide) + { + $result = new ComputationResult(); + $result->equation = "$leftSide $operation $rightSide"; + $result->result = $this->evaluateExpression($leftSide, $operation, $rightSide); + if (count($this->errors)) { + $result->success = false; + $result->errors = $this->errors; + } + else { + $result->success = true; + } + + return $result; + } + + /** + * Simply add two operands + * @param int $a + * @param int $b + * @return int The result + * @soapmethod + */ + public function add($a, $b) { + return $a + $b; + } + + /** + * This method evaluates the expression. It should be capable of handling any $op + * passed to it. + * @return string the result of the evaluation + */ + private function evaluateExpression($left, $op, $right) + { + // Now, because we don't want to eval random code on the server that this is running + // on, we're just going to highlight the string + $evaluation = highlight_string("$left $op $right;", true); + return $evaluation; + } +} + +class ComputationResult +{ + /** + * @var string The initial equation + */ + public $equation; + + /** + * @var string The computed result + */ + public $result; + + /** + * @var boolean Whether the computation succeeded + */ + public $success; + + /** + * @var array any errors that occured in the processing. + */ + public $errors; +} +?>
\ No newline at end of file |