From 97dddf3cf23f7d2829d23efb9d44b746ac7d52cc Mon Sep 17 00:00:00 2001 From: knut <> Date: Thu, 6 Jul 2006 19:45:32 +0000 Subject: Added a TSoapService prototype with a simple demo app --- demos/soap/index.php | 5 ++ demos/soap/protected/application.xml | 10 +++ demos/soap/protected/pages/Home.page | 20 +++++ demos/soap/protected/pages/Home.php | 44 +++++++++++ demos/soap/protected/runtime/global.cache | 1 + demos/soap/protected/webservices/SimpleService.php | 89 ++++++++++++++++++++++ 6 files changed, 169 insertions(+) create mode 100644 demos/soap/index.php create mode 100644 demos/soap/protected/application.xml create mode 100644 demos/soap/protected/pages/Home.page create mode 100644 demos/soap/protected/pages/Home.php create mode 100644 demos/soap/protected/runtime/global.cache create mode 100644 demos/soap/protected/webservices/SimpleService.php (limited to 'demos') diff --git a/demos/soap/index.php b/demos/soap/index.php new file mode 100644 index 00000000..009011f8 --- /dev/null +++ b/demos/soap/index.php @@ -0,0 +1,5 @@ +run(); +?> \ No newline at end of file diff --git a/demos/soap/protected/application.xml b/demos/soap/protected/application.xml new file mode 100644 index 00000000..e59c5b84 --- /dev/null +++ b/demos/soap/protected/application.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/demos/soap/protected/pages/Home.page b/demos/soap/protected/pages/Home.page new file mode 100644 index 00000000..732022e9 --- /dev/null +++ b/demos/soap/protected/pages/Home.page @@ -0,0 +1,20 @@ + + + TSoapService Demo + + +

TSoapService Demo

+

Welcome to the TSoapService demo. See service description.

+ + +

Soap Calculator

+ + = + +

Highlight source code

+
+
+ + +
+ + \ No newline at end of file diff --git a/demos/soap/protected/pages/Home.php b/demos/soap/protected/pages/Home.php new file mode 100644 index 00000000..98fbe6c6 --- /dev/null +++ b/demos/soap/protected/pages/Home.php @@ -0,0 +1,44 @@ +_client = new SoapClient($wsdl, array('soap_version' => SOAP_1_1, + //'use' => '', + // 'style' => '')); + + // TODO: use classmap + $this->_client = new SoapClient(null, array('location' => $location, 'uri' => 'urn:SimpleService', 'soap_version' => SOAP_1_2)); + } + + public function onCompute($sender, $param) { + $a = $this->a->Text; + $b = $this->b->Text; + + try { + $result = $this->_client->add($a, $b); + } catch(SoapFault $e) { // TODO: Prado wrapper for SoapFault (TSoapFaultException) + print $e; + } + //var_dump($result); + $this->result->Text = $result; + } + + public function onHighlight($sender, $param) { + try { + $result = $this->_client->__soapCall('highlight', array(file_get_contents(__FILE__))); + } catch(SoapFault $e) { // TODO: Prado wrapper for SoapFault (TSoapFaultException) + print $e; + } + $this->SourceCode->Text = $result; + } + +} + +?> \ No newline at end of file diff --git a/demos/soap/protected/runtime/global.cache b/demos/soap/protected/runtime/global.cache new file mode 100644 index 00000000..0520dc3a --- /dev/null +++ b/demos/soap/protected/runtime/global.cache @@ -0,0 +1 @@ +a:1:{s:35:"prado:securitymanager:validationkey";s:38:"16373386985182982755332313631333778405";} \ No newline at end of file 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 @@ +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 -- cgit v1.2.3