summaryrefslogtreecommitdiff
path: root/ext/zend_test/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zend_test/test.c')
-rw-r--r--ext/zend_test/test.c92
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),