lbarnaud Thu Nov 13 05:46:51 2008 UTC
Added files:
/php-src/ext/standard/tests/streams
stream_context_get_params_001.phpt
Modified files:
/php-src/ext/standard basic_functions.c streamsfuncs.c
streamsfuncs.h
Log:
Added stream_context_get_params()
[DOC] proto bool stream_context_get_params(resource context|stream)
Get parameters of a file context (parameters set by
stream_context_set_params())
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.934&r2=1.935&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.934
php-src/ext/standard/basic_functions.c:1.935
--- php-src/ext/standard/basic_functions.c:1.934 Wed Nov 5 21:33:19 2008
+++ php-src/ext/standard/basic_functions.c Thu Nov 13 05:46:51 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.934 2008/11/05 21:33:19 lbarnaud Exp $ */
+/* $Id: basic_functions.c,v 1.935 2008/11/13 05:46:51 lbarnaud Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -2387,6 +2387,11 @@
ZEND_END_ARG_INFO()
static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_params, 0,
ZEND_RETURN_VALUE, 1)
+ ZEND_ARG_INFO(0, stream_or_context)
+ZEND_END_ARG_INFO()
+
+static
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_default, 0, 0, 0)
ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
ZEND_END_ARG_INFO()
@@ -3564,6 +3569,7 @@
PHP_FE(stream_select,
arginfo_stream_select)
PHP_FE(stream_context_create,
arginfo_stream_context_create)
PHP_FE(stream_context_set_params,
arginfo_stream_context_set_params)
+ PHP_FE(stream_context_get_params,
arginfo_stream_context_get_params)
PHP_FE(stream_context_set_option,
arginfo_stream_context_set_option)
PHP_FE(stream_context_get_options,
arginfo_stream_context_get_options)
PHP_FE(stream_context_get_default,
arginfo_stream_context_get_default)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.129&r2=1.130&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.129
php-src/ext/standard/streamsfuncs.c:1.130
--- php-src/ext/standard/streamsfuncs.c:1.129 Tue Nov 4 16:45:42 2008
+++ php-src/ext/standard/streamsfuncs.c Thu Nov 13 05:46:51 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.129 2008/11/04 16:45:42 lbarnaud Exp $ */
+/* $Id: streamsfuncs.c,v 1.130 2008/11/13 05:46:51 lbarnaud Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -1151,6 +1151,35 @@
}
/* }}} */
+/* {{{ proto bool stream_context_get_params(resource context|resource stream) U
+ Get parameters of a file context */
+PHP_FUNCTION(stream_context_get_params)
+{
+ zval *zcontext, *options;
+ php_stream_context *context;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zcontext) ==
FAILURE) {
+ RETURN_FALSE;
+ }
+
+ context = decode_context_param(zcontext TSRMLS_CC);
+ if (!context) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid
stream/context parameter");
+ RETURN_FALSE;
+ }
+
+ array_init(return_value);
+ if (context->notifier && context->notifier->ptr &&
context->notifier->func == user_space_stream_notifier) {
+ add_ascii_assoc_zval_ex(return_value,
ZEND_STRS("notification"), context->notifier->ptr);
+ Z_ADDREF_P(context->notifier->ptr);
+ }
+ ALLOC_INIT_ZVAL(options);
+ ZVAL_ZVAL(options, context->options, 1, 0);
+ add_ascii_assoc_zval_ex(return_value, ZEND_STRS("options"), options);
+}
+/* }}} */
+
+
/* {{{ proto resource stream_context_get_default([array options]) U
Get a handle on the default file/stream context and optionally set
parameters */
PHP_FUNCTION(stream_context_get_default)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.h?r1=1.23&r2=1.24&diff_format=u
Index: php-src/ext/standard/streamsfuncs.h
diff -u php-src/ext/standard/streamsfuncs.h:1.23
php-src/ext/standard/streamsfuncs.h:1.24
--- php-src/ext/standard/streamsfuncs.h:1.23 Sat Aug 16 10:57:26 2008
+++ php-src/ext/standard/streamsfuncs.h Thu Nov 13 05:46:51 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.h,v 1.23 2008/08/16 10:57:26 bjori Exp $ */
+/* $Id: streamsfuncs.h,v 1.24 2008/11/13 05:46:51 lbarnaud Exp $ */
/* Flags for stream_socket_client */
#define PHP_STREAM_CLIENT_PERSISTENT 1
@@ -46,6 +46,7 @@
PHP_FUNCTION(stream_wrapper_restore);
PHP_FUNCTION(stream_context_create);
PHP_FUNCTION(stream_context_set_params);
+PHP_FUNCTION(stream_context_get_params);
PHP_FUNCTION(stream_context_set_option);
PHP_FUNCTION(stream_context_get_options);
PHP_FUNCTION(stream_context_get_default);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt
+++ php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt
--TEST--
stream_context_get_params()
--FILE--
<?php
$ctx = stream_context_create();
var_dump($ctx);
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_set_option($ctx, "foo","bar","baz"));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_set_params($ctx, array("notification" =>
"stream_notification_callback")));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_set_params($ctx, array("notification" =>
array("stream","notification_callback"))));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_get_options($ctx));
var_dump(stream_context_get_params($ctx));
var_dump(stream_context_get_options($ctx));
?>
--EXPECTF--
resource(%d) of type (stream-context)
array(1) {
[%u|b%"options"]=>
array(0) {
}
}
bool(true)
array(1) {
[%u|b%"options"]=>
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
}
bool(true)
array(2) {
[%u|b%"notification"]=>
%unicode|string%(28) "stream_notification_callback"
[%u|b%"options"]=>
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
}
bool(true)
array(2) {
[%u|b%"notification"]=>
array(2) {
[0]=>
%unicode|string%(6) "stream"
[1]=>
%unicode|string%(21) "notification_callback"
}
[%u|b%"options"]=>
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
}
array(2) {
[%u|b%"notification"]=>
array(2) {
[0]=>
%unicode|string%(6) "stream"
[1]=>
%unicode|string%(21) "notification_callback"
}
[%u|b%"options"]=>
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
}
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
array(2) {
[%u|b%"notification"]=>
array(2) {
[0]=>
%unicode|string%(6) "stream"
[1]=>
%unicode|string%(21) "notification_callback"
}
[%u|b%"options"]=>
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}
}
array(1) {
[%u|b%"foo"]=>
array(1) {
[%u|b%"bar"]=>
%unicode|string%(3) "baz"
}
}