diff options
Diffstat (limited to 'ext/zend_test/test.c')
-rw-r--r-- | ext/zend_test/test.c | 92 |
1 files changed, 21 insertions, 71 deletions
diff --git a/ext/zend_test/test.c b/ext/zend_test/test.c index 4e7f55d1b1..007634f97c 100644 --- a/ext/zend_test/test.c +++ b/ext/zend_test/test.c @@ -51,6 +51,9 @@ static zend_class_entry *zend_test_class; static zend_class_entry *zend_test_child_class; static zend_class_entry *zend_test_trait; static zend_class_entry *zend_test_attribute; +static zend_class_entry *zend_test_ns_foo_class; +static zend_class_entry *zend_test_ns2_foo_class; +static zend_class_entry *zend_test_ns2_ns_foo_class; static zend_object_handlers zend_test_class_handlers; static ZEND_FUNCTION(zend_test_func) @@ -238,8 +241,8 @@ static ZEND_FUNCTION(zend_iterable) static ZEND_FUNCTION(namespaced_func) { - ZEND_PARSE_PARAMETERS_NONE(); - RETURN_TRUE; + ZEND_PARSE_PARAMETERS_NONE(); + RETURN_TRUE; } static zend_object *zend_test_class_new(zend_class_entry *class_type) /* {{{ */ { @@ -329,6 +332,10 @@ static ZEND_METHOD(ZendTestNS2_Foo, method) { ZEND_PARSE_PARAMETERS_NONE(); } +static ZEND_METHOD(ZendTestNS2_ZendSubNS_Foo, method) { + ZEND_PARSE_PARAMETERS_NONE(); +} + PHP_INI_BEGIN() STD_PHP_INI_BOOLEAN("zend_test.observer.enabled", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_enabled, zend_zend_test_globals, zend_test_globals) STD_PHP_INI_BOOLEAN("zend_test.observer.show_output", "1", PHP_INI_SYSTEM, OnUpdateBool, observer_show_output, zend_zend_test_globals, zend_test_globals) @@ -352,89 +359,32 @@ static void custom_zend_execute_ex(zend_execute_data *execute_data) PHP_MINIT_FUNCTION(zend_test) { - zend_class_entry class_entry; - - INIT_CLASS_ENTRY(class_entry, "_ZendTestInterface", NULL); - zend_test_interface = zend_register_internal_interface(&class_entry); + zend_test_interface = register_class__ZendTestInterface(); zend_declare_class_constant_long(zend_test_interface, ZEND_STRL("DUMMY"), 0); - INIT_CLASS_ENTRY(class_entry, "_ZendTestClass", class__ZendTestClass_methods); - zend_test_class = zend_register_internal_class(&class_entry); - zend_class_implements(zend_test_class, 1, zend_test_interface); + + zend_test_class = register_class__ZendTestClass(zend_test_interface); zend_test_class->create_object = zend_test_class_new; zend_test_class->get_static_method = zend_test_class_static_method_get; - zend_declare_property_null(zend_test_class, "_StaticProp", sizeof("_StaticProp") - 1, ZEND_ACC_STATIC); - - { - zend_string *name = zend_string_init("intProp", sizeof("intProp") - 1, 1); - zval val; - ZVAL_LONG(&val, 123); - zend_declare_typed_property( - zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL, - (zend_type) ZEND_TYPE_INIT_CODE(IS_LONG, 0, 0)); - zend_string_release(name); - } - - { - zend_string *name = zend_string_init("classProp", sizeof("classProp") - 1, 1); - zend_string *class_name = zend_string_init("stdClass", sizeof("stdClass") - 1, 1); - zval val; - ZVAL_NULL(&val); - zend_declare_typed_property( - zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL, - (zend_type) ZEND_TYPE_INIT_CLASS(class_name, 1, 0)); - zend_string_release(name); - } - - { - zend_string *name = zend_string_init("classUnionProp", sizeof("classUnionProp") - 1, 1); - zend_string *class_name1 = zend_string_init("stdClass", sizeof("stdClass") - 1, 1); - zend_string *class_name2 = zend_string_init("Iterator", sizeof("Iterator") - 1, 1); - zend_type_list *type_list = malloc(ZEND_TYPE_LIST_SIZE(2)); - type_list->num_types = 2; - type_list->types[0] = (zend_type) ZEND_TYPE_INIT_CLASS(class_name1, 0, 0); - type_list->types[1] = (zend_type) ZEND_TYPE_INIT_CLASS(class_name2, 0, 0); - zend_type type = ZEND_TYPE_INIT_PTR(type_list, _ZEND_TYPE_LIST_BIT, 1, 0); - zval val; - ZVAL_NULL(&val); - zend_declare_typed_property(zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL, type); - zend_string_release(name); - } - - { - zend_string *name = zend_string_init("staticIntProp", sizeof("staticIntProp") - 1, 1); - zval val; - ZVAL_LONG(&val, 123); - zend_declare_typed_property( - zend_test_class, name, &val, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC, NULL, - (zend_type) ZEND_TYPE_INIT_CODE(IS_LONG, 0, 0)); - zend_string_release(name); - } - - INIT_CLASS_ENTRY(class_entry, "_ZendTestChildClass", NULL); - zend_test_child_class = zend_register_internal_class_ex(&class_entry, zend_test_class); + zend_test_child_class = register_class__ZendTestChildClass(zend_test_class); memcpy(&zend_test_class_handlers, &std_object_handlers, sizeof(zend_object_handlers)); zend_test_class_handlers.get_method = zend_test_class_method_get; - INIT_CLASS_ENTRY(class_entry, "_ZendTestTrait", class__ZendTestTrait_methods); - zend_test_trait = zend_register_internal_class(&class_entry); - zend_test_trait->ce_flags |= ZEND_ACC_TRAIT; - zend_declare_property_null(zend_test_trait, "testProp", sizeof("testProp")-1, ZEND_ACC_PUBLIC); - - zend_register_class_alias("_ZendTestClassAlias", zend_test_class); + zend_test_trait = register_class__ZendTestTrait(); REGISTER_LONG_CONSTANT("ZEND_TEST_DEPRECATED", 42, CONST_PERSISTENT | CONST_DEPRECATED); - INIT_CLASS_ENTRY(class_entry, "ZendTestAttribute", NULL); - zend_test_attribute = zend_register_internal_class(&class_entry); - zend_test_attribute->ce_flags |= ZEND_ACC_FINAL; - + zend_test_attribute = register_class_ZendTestAttribute(); { zend_internal_attribute *attr = zend_internal_attribute_register(zend_test_attribute, ZEND_ATTRIBUTE_TARGET_ALL); attr->validator = zend_attribute_validate_zendtestattribute; } + zend_test_ns_foo_class = register_class_ZendTestNS_Foo(); + zend_test_ns2_foo_class = register_class_ZendTestNS2_Foo(); + zend_test_ns2_ns_foo_class = register_class_ZendTestNS2_ZendSubNS_Foo(); + // Loading via dl() not supported with the observer API if (type != MODULE_TEMPORARY) { REGISTER_INI_ENTRIES(); @@ -613,7 +563,7 @@ static PHP_GINIT_FUNCTION(zend_test) PHP_MINFO_FUNCTION(zend_test) { php_info_print_table_start(); - php_info_print_table_header(2, "zend-test extension", "enabled"); + php_info_print_table_header(2, "zend_test extension", "enabled"); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); @@ -621,7 +571,7 @@ PHP_MINFO_FUNCTION(zend_test) zend_module_entry zend_test_module_entry = { STANDARD_MODULE_HEADER, - "zend-test", + "zend_test", ext_functions, PHP_MINIT(zend_test), PHP_MSHUTDOWN(zend_test), |