dmitry Thu Dec 27 13:10:20 2007 UTC
Added files: (Branch: PHP_5_3)
/php-src/ext/soap/tests server030.phpt server030.wsdl
Modified files:
/php-src NEWS
/php-src/ext/soap php_encoding.c
Log:
Added ability to use SplArrays instead of plain arrays in ext/soap. (Joshua
Reese, Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.60&r2=1.2027.2.547.2.965.2.61&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.60
php-src/NEWS:1.2027.2.547.2.965.2.61
--- php-src/NEWS:1.2027.2.547.2.965.2.60 Tue Dec 25 18:54:29 2007
+++ php-src/NEWS Thu Dec 27 13:10:20 2007
@@ -1,6 +1,8 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 20??, PHP 5.3.0
+- Added ability to use SplArrays instead of plain arrays in ext/soap.
+ (Joshua Reese, Dmitry)
- Added "?:" operator. (Marcus)
- Added stream_supports_lock() function. (Benjamin Schulz)
- Added msg_queue_exists() function. (Benjamin Schulz)
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.37.2.3&r2=1.103.2.21.2.37.2.4&diff_format=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.37.2.3
php-src/ext/soap/php_encoding.c:1.103.2.21.2.37.2.4
--- php-src/ext/soap/php_encoding.c:1.103.2.21.2.37.2.3 Wed Oct 17 12:09:02 2007
+++ php-src/ext/soap/php_encoding.c Thu Dec 27 13:10:20 2007
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.c,v 1.103.2.21.2.37.2.3 2007/10/17 12:09:02 dmitry Exp $
*/
+/* $Id: php_encoding.c,v 1.103.2.21.2.37.2.4 2007/12/27 13:10:20 dmitry Exp $
*/
#include <time.h>
@@ -27,6 +27,10 @@
#include <libxml/parserInternals.h>
#include "zend_strtod.h"
+#ifdef HAVE_SPL
+# include "ext/spl/spl_array.h"
+#endif
+
/* zval type decode */
static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data);
static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data);
@@ -2238,7 +2242,9 @@
int dimension = 1;
int* dims;
int soap_version;
-
+#ifdef HAVE_SPL
+ zval *array_copy = NULL;
+#endif
TSRMLS_FETCH();
soap_version = SOAP_GLOBAL(soap_version);
@@ -2258,6 +2264,18 @@
return xmlParam;
}
+#ifdef HAVE_SPL
+ if (Z_TYPE_P(data) == IS_OBJECT &&
(instanceof_function(Z_OBJCE_P(data), spl_ce_ArrayObject TSRMLS_CC) ||
instanceof_function(Z_OBJCE_P(data), spl_ce_ArrayIterator TSRMLS_CC))) {
+ zval getArray;
+
+ ZVAL_STRING(&getArray, "getArrayCopy", 0);
+ call_user_function_ex(NULL, &data, &getArray, &array_copy, 0,
0, 0, NULL TSRMLS_CC);
+ if (Z_TYPE_P(array_copy) == IS_ARRAY) {
+ data = array_copy;
+ }
+ }
+#endif
+
if (Z_TYPE_P(data) == IS_ARRAY) {
sdlAttributePtr *arrayType;
sdlExtraAttributePtr *ext;
@@ -2435,6 +2453,13 @@
set_ns_and_type(xmlParam, type);
}
}
+
+#ifdef HAVE_SPL
+ if (array_copy) {
+ zval_ptr_dtor(&array_copy);
+ }
+#endif
+
return xmlParam;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/server030.phpt?view=markup&rev=1.1
Index: php-src/ext/soap/tests/server030.phpt
+++ php-src/ext/soap/tests/server030.phpt
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/server030.wsdl?view=markup&rev=1.1
Index: php-src/ext/soap/tests/server030.wsdl
+++ php-src/ext/soap/tests/server030.wsdl
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php