summaryrefslogtreecommitdiff
path: root/framework/3rdParty
diff options
context:
space:
mode:
authorCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:56:48 +0200
committerCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:57:07 +0200
commit3069eaf35e833ffe4a1c1c7829dd7e168ae27420 (patch)
treed0c2e4d934cc34ba7d4232f759923b5a257dcb21 /framework/3rdParty
parentb833247ce597ec26159b46c8dfbea7f1e265950b (diff)
Merge up to r3319
Diffstat (limited to 'framework/3rdParty')
-rw-r--r--framework/3rdParty/SafeHtml/TSafeHtmlParser.php30
-rw-r--r--framework/3rdParty/WsdlGen/Wsdl.php11
-rw-r--r--framework/3rdParty/WsdlGen/WsdlGenerator.php32
3 files changed, 52 insertions, 21 deletions
diff --git a/framework/3rdParty/SafeHtml/TSafeHtmlParser.php b/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
index f26c0ae1..29f2cb65 100644
--- a/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
+++ b/framework/3rdParty/SafeHtml/TSafeHtmlParser.php
@@ -364,21 +364,21 @@ class TSafeHtmlParser
}
}
- $tempval = preg_replace_callback(
- '/&#(\d+);?/m',
- function ($matches) {
- return chr($matches[0]);
- },
- $value
- ); //"'
-
- $tempval = preg_replace_callback(
- '/&#x([0-9a-f]+);?/mi',
- function ($matches) {
- return chr(hexdec($matches[0]));
- },
- $tempval
- );
+ $tempval = preg_replace_callback(
+ '/&#(\d+);?/m',
+ function ($matches) {
+ return chr($matches[0]);
+ },
+ $value
+ ); //"'
+
+ $tempval = preg_replace_callback(
+ '/&#x([0-9a-f]+);?/mi',
+ function ($matches) {
+ return chr(hexdec($matches[0]));
+ },
+ $tempval
+ );
if ((in_array($name, $this->protocolAttributes)) &&
(strpos($tempval, ':') !== false))
diff --git a/framework/3rdParty/WsdlGen/Wsdl.php b/framework/3rdParty/WsdlGen/Wsdl.php
index 5d9c6aec..8cfee9cc 100644
--- a/framework/3rdParty/WsdlGen/Wsdl.php
+++ b/framework/3rdParty/WsdlGen/Wsdl.php
@@ -12,7 +12,7 @@
*
* @author Marcus Nyeholt <tanus@users.sourceforge.net>
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version $Id: Wsdl.php 3188 2012-07-12 12:13:23Z ctrlaltca $
+ * @version $Id: Wsdl.php 3314 2013-08-20 10:00:47Z ctrlaltca $
* @package System.Web.Services.SOAP
*/
@@ -90,7 +90,8 @@ class Wsdl
{
$this->_encoding = $encoding;
$this->serviceName = $name;
- if ($serviceUri == '') $serviceUri = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
+ $protocol=(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']!=='off'))?'https://':'http://';
+ if ($serviceUri === '') $serviceUri = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$this->serviceUri = str_replace('&amp;', '&', $serviceUri);
$this->types = new ArrayObject();
$this->targetNamespace = 'urn:'.$name.'wsdl';
@@ -167,6 +168,12 @@ class Wsdl
$e = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:element');
$e->setAttribute('name', $elem['name']);
$e->setAttribute('type', $elem['type']);
+ if($elem['minOc']!==false)
+ $e->setAttribute('minOccurs',$elem['minOc']);
+ if($elem['maxOc']!==false)
+ $e->setAttribute('maxOccurs',$elem['maxOc']);
+ if($elem['nil']!==false)
+ $e->setAttribute('nillable',$elem['nil']);
$all->appendChild($e);
}
$complexType->appendChild($all);
diff --git a/framework/3rdParty/WsdlGen/WsdlGenerator.php b/framework/3rdParty/WsdlGen/WsdlGenerator.php
index b208fb8b..0bc2e6d4 100644
--- a/framework/3rdParty/WsdlGen/WsdlGenerator.php
+++ b/framework/3rdParty/WsdlGen/WsdlGenerator.php
@@ -11,7 +11,7 @@
* This file is part of the PRADO framework from {@link http://www.xisc.com}
*
* @author Marcus Nyeholt <tanus@users.sourceforge.net>
- * @version $Id: WsdlGenerator.php 3188 2012-07-12 12:13:23Z ctrlaltca $
+ * @version $Id: WsdlGenerator.php 3314 2013-08-20 10:00:47Z ctrlaltca $
* @package System.Web.Services.SOAP
*/
@@ -282,11 +282,35 @@ class WsdlGenerator
$comment = $property->getDocComment();
if(strpos($comment, '@soapproperty') !== false)
{
- if (preg_match('/@var\s+(\w+(\[\])?)\s+\$(\w+)/mi', $comment, $match)) {
+ if(preg_match('/@var\s+([\w\.]+(\[\s*\])?)\s*?\$(.*)$/mi',$comment,$matches))
+ {
+ // support nillable, minOccurs, maxOccurs attributes
+ $nillable=$minOccurs=$maxOccurs=false;
+ if(preg_match('/{(.+)}/',$matches[3],$attr))
+ {
+ $matches[3]=str_replace($attr[0],'',$matches[3]);
+ if(preg_match_all('/((\w+)\s*=\s*(\w+))/mi',$attr[1],$attr))
+ {
+ foreach($attr[2] as $id=>$prop)
+ {
+ if(strcasecmp($prop,'nillable')===0)
+ $nillable=$attr[3][$id] ? 'true' : 'false';
+ elseif(strcasecmp($prop,'minOccurs')===0)
+ $minOccurs=(int)$attr[3][$id];
+ elseif(strcasecmp($prop,'maxOccurs')===0)
+ $maxOccurs=(int)$attr[3][$id];
+ }
+ }
+ }
+
$param = array();
- $param['type'] = $this->convertType($match[1]);
- $param['name'] = $match[3];
+ $param['type'] = $this->convertType($matches[1]);
+ $param['name'] = trim($matches[3]);
+ $param['nil'] = $nillable;
+ $param['minOc'] = $minOccurs;
+ $param['maxOc'] = $maxOccurs;
$this->types[$className][] = $param;
+
}
}
}