For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > July 2007 > cvs: ZendEngine2(PHP_5_2) / zend_builtin_functions.c /tests 017.phpt









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author cvs: ZendEngine2(PHP_5_2) / zend_builtin_functions.c /tests 017.phpt
Johannes Schlüter

2007-07-31, 7:01 pm

johannes Tue Jul 31 22:47:25 2007 UTC

Modified files: (Branch: PHP_5_2)
/ZendEngine2 zend_builtin_functions.c
/ZendEngine2/tests 017.phpt
Log:
- MFH: Add additional param to get_loaded_extensions() for returning Zend
extensions (Fixes #41278) [DOC]


http://cvs.php.net/viewvc.cgi/ZendE...0&diff_format=u
Index: ZendEngine2/zend_builtin_functions.c
diff -u ZendEngine2/zend_builtin_functions.c:1.277.2.12.2.19 ZendEngine2/zend_builtin_functions.c:1.277.2.12.2.20
--- ZendEngine2/zend_builtin_functions.c:1.277.2.12.2.19 Tue Jul 24 11:39:55 2007
+++ ZendEngine2/zend_builtin_functions.c Tue Jul 31 22:47:25 2007
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/

-/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.19 2007/07/24 11:39:55 dmitry Exp $ */
+/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.20 2007/07/31 22:47:25 johannes Exp $ */

#include "zend.h"
#include "zend_API.h"
@@ -25,6 +25,7 @@
#include "zend_constants.h"
#include "zend_ini.h"
#include "zend_exceptions.h"
+#include "zend_extensions.h"

#undef ZEND_TEST_EXCEPTIONS

@@ -1548,6 +1549,13 @@
return 0;
}

+static int add_zendext_info(zend_extension *ext, void *arg TSRMLS_DC)
+{
+ zval *name_array = (zval *)arg;
+ add_next_index_string(name_array, ext->name, 1);
+ return 0;
+}
+
static int add_constant_info(zend_constant *constant, void *arg TSRMLS_DC)
{
zval *name_array = (zval *)arg;
@@ -1562,16 +1570,34 @@
}


-/* {{{ proto array get_loaded_extensions(void)
+/* {{{ proto array get_loaded_extensions([mixed categorize]) U
Return an array containing names of loaded extensions */
ZEND_FUNCTION(get_loaded_extensions)
{
- if (ZEND_NUM_ARGS() != 0) {
+ int argc = ZEND_NUM_ARGS();
+
+ if (argc != 0 && argc != 1) {
ZEND_WRONG_PARAM_COUNT();
}

array_init(return_value);
- zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, return_value TSRMLS_CC);
+
+ if (argc) {
+ zval *modules;
+ zval *extensions;
+
+ MAKE_STD_ZVAL(modules);
+ array_init(modules);
+ zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, modules TSRMLS_CC);
+ add_assoc_zval_ex(return_value, "PHP Modules", sizeof("PHP Modules"), modules);
+
+ MAKE_STD_ZVAL(extensions);
+ array_init(extensions);
+ zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) add_zendext_info, extensions TSRMLS_CC);
+ add_assoc_zval_ex(return_value, "Zend Extensions", sizeof("Zend Extensions"), extensions);
+ } else {
+ zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, return_value TSRMLS_CC);
+ }
}
/* }}} */

http://cvs.php.net/viewvc.cgi/ZendE...3&diff_format=u
Index: ZendEngine2/tests/017.phpt
diff -u ZendEngine2/tests/017.phpt:1.1.2.2 ZendEngine2/tests/017.phpt:1.1.2.3
--- ZendEngine2/tests/017.phpt:1.1.2.2 Tue Nov 21 11:11:39 2006
+++ ZendEngine2/tests/017.phpt Tue Jul 31 22:47:25 2007
@@ -10,9 +10,9 @@
fclose($fp);
var_dump(get_resource_type($fp));

-var_dump(get_loaded_extensions(true));
var_dump(gettype(get_loaded_extensions()
));
var_dump(count(get_loaded_extensions()))
;
+var_dump(count(get_loaded_extensions(tr
ue)));

define("USER_CONSTANT", "test");

@@ -50,11 +50,9 @@
bool(false)
string(6) "stream"
string(7) "Unknown"
-
-Warning: Wrong parameter count for get_loaded_extensions() in %s on line %d
-NULL
string(5) "array"
int(%d)
+int(2)

Warning: Wrong parameter count for get_defined_constants() in %s on line %d
NULL
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com