]> granicus.if.org Git - php/commitdiff
MFH: argument info for php_user_filter
authorHannes Magnusson <bjori@php.net>
Mon, 26 Jun 2006 17:23:39 +0000 (17:23 +0000)
committerHannes Magnusson <bjori@php.net>
Mon, 26 Jun 2006 17:23:39 +0000 (17:23 +0000)
Add tests

ext/standard/tests/filters/php_user_filter_01.phpt [new file with mode: 0644]
ext/standard/tests/filters/php_user_filter_02.phpt [new file with mode: 0644]
ext/standard/tests/filters/php_user_filter_03.phpt [new file with mode: 0644]
ext/standard/user_filters.c

diff --git a/ext/standard/tests/filters/php_user_filter_01.phpt b/ext/standard/tests/filters/php_user_filter_01.phpt
new file mode 100644 (file)
index 0000000..534b9ab
--- /dev/null
@@ -0,0 +1,17 @@
+--TEST--
+class php_user_filter#1
+--FILE--
+<?php
+class foo extends php_user_filter {
+    function filter($in, $out, &$consumed, $closing) {}
+    function onCreate() {}
+    function onClose() {}
+}
+class bar extends php_user_filter {
+    function filter($in, $out, &$consumed) {}
+    function onCreate() {}
+    function onClose() {}
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of bar::filter() should be compatible with that of php_user_filter::filter() in %s on line %d
diff --git a/ext/standard/tests/filters/php_user_filter_02.phpt b/ext/standard/tests/filters/php_user_filter_02.phpt
new file mode 100644 (file)
index 0000000..73a1f02
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+class php_user_filter#2
+--FILE--
+<?php
+class foo extends php_user_filter {
+    function filter($in, $out, $consumed, $closing) {}
+    function onCreate() {}
+    function onClose() {}
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of foo::filter() should be compatible with that of php_user_filter::filter() in %s on line %d
diff --git a/ext/standard/tests/filters/php_user_filter_03.phpt b/ext/standard/tests/filters/php_user_filter_03.phpt
new file mode 100644 (file)
index 0000000..5962951
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+class php_user_filter#3
+--FILE--
+<?php
+class foo extends php_user_filter {
+    function filter($in, $out, &$consumed, $closing) {}
+    function onCreate($var) {}
+    function onClose() {}
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of foo::onCreate() should be compatible with that of php_user_filter::onCreate() in %s on line %d
index de96cbff2c0d4c0d778ac544be298a5255ddd9ff..83c111a34cd8e1c7888dcb161d35d3880dfeeac3 100644 (file)
@@ -54,11 +54,26 @@ static int le_bucket;
 PHP_FUNCTION(user_filter_nop)
 {
 }
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_filter, 0)
+       ZEND_ARG_INFO(0, in)
+       ZEND_ARG_INFO(0, out)
+       ZEND_ARG_INFO(1, consumed)
+       ZEND_ARG_INFO(0, closing)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_onCreate, 0)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_onClose, 0)
+ZEND_END_ARG_INFO()
 
 static zend_function_entry user_filter_class_funcs[] = {
-       PHP_NAMED_FE(filter,    PHP_FN(user_filter_nop),                NULL)
-       PHP_NAMED_FE(onCreate,  PHP_FN(user_filter_nop),                NULL)
-       PHP_NAMED_FE(onClose,   PHP_FN(user_filter_nop),                NULL)
+       PHP_NAMED_FE(filter,    PHP_FN(user_filter_nop),                arginfo_php_user_filter_filter)
+       PHP_NAMED_FE(onCreate,  PHP_FN(user_filter_nop),                arginfo_php_user_filter_onCreate)
+       PHP_NAMED_FE(onClose,   PHP_FN(user_filter_nop),                arginfo_php_user_filter_onClose)
        { NULL, NULL, NULL }
 };
 
@@ -75,11 +90,14 @@ static ZEND_RSRC_DTOR_FUNC(php_bucket_dtor)
 
 PHP_MINIT_FUNCTION(user_filters)
 {
+       zend_class_entry *php_user_filter;
        /* init the filter class ancestor */
        INIT_CLASS_ENTRY(user_filter_class_entry, "php_user_filter", user_filter_class_funcs);
-       if (NULL == zend_register_internal_class(&user_filter_class_entry TSRMLS_CC)) {
+       if ((php_user_filter = zend_register_internal_class(&user_filter_class_entry TSRMLS_CC)) == NULL) {
                return FAILURE;
        }
+       zend_declare_property_string(php_user_filter, "filtername", sizeof("filtername")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+       zend_declare_property_string(php_user_filter, "params", sizeof("params")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
 
        /* init the filter resource; it has no dtor, as streams will always clean it up
         * at the correct time */