make version props typed issue-typedprop 51/head
authorRemi Collet <remi@remirepo.net>
Wed, 5 Jul 2023 07:59:27 +0000 (09:59 +0200)
committerRemi Collet <remi@php.net>
Wed, 5 Jul 2023 07:59:27 +0000 (09:59 +0200)
src/php_pq_object.c
src/php_pqconn.c

index 5b3f217a95f7e7bb4c9561a7d954a34359787089..47d34967cc37beaad6df8acdfe12a21857757b5a 100644 (file)
@@ -231,12 +231,13 @@ zval *php_pq_object_read_prop(zend_object *object, zend_string *member, int type
        if (SUCCESS != php_pq_object_read_prop_ex(object, member, type, tmp)) {
                return zend_std_read_property(object, member, type, cache_slot, tmp);
        }
-
+/*
        zend_std_write_property(object, member, tmp, cache_slot);
 
        if (cache_slot) {
                *cache_slot = NULL;
        }
+*/
        return tmp;
 }
 #else
index 19ea6f05ebcaebd0abb059d475c7bad802f29128..1d1f3f8e4676042de1ce21d3c55dbd80b0c3ab3b 100644 (file)
@@ -2160,19 +2160,49 @@ PHP_MINIT_FUNCTION(pqconn)
        ph.write = NULL;
 
 #ifdef HAVE_PQLIBVERSION
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
+#if PHP_VERSION_ID < 80000
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC);
+#else
+       {
+       zval default_value;
+       zend_string *name = zend_string_init(ZEND_STRL("libraryVersion"), 1);
+       ZVAL_UNDEF(&default_value);
+       zend_declare_typed_property(php_pqconn_class_entry, name, &default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
+       zend_string_release(name);
+       }
+#endif
        ph.read = php_pqconn_object_read_lib_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("libraryVersion"), (void *) &ph, sizeof(ph));
 #endif
 
 #ifdef HAVE_PQPROTOCOLVERSION
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
+#if PHP_VERSION_ID < 80000
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC);
+#else
+       {
+       zval default_value;
+       zend_string *name = zend_string_init(ZEND_STRL("protocolVersion"), 1);
+       ZVAL_UNDEF(&default_value);
+       zend_declare_typed_property(php_pqconn_class_entry, name, &default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+       zend_string_release(name);
+       }
+#endif
        ph.read = php_pqconn_object_read_protocol_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("protocolVersion"), (void *) &ph, sizeof(ph));
 #endif
 
 #ifdef HAVE_PQSERVERVERSION
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
+#if PHP_VERSION_ID < 80000
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC);
+#else
+       {
+       zval default_value;
+       zend_string *name = zend_string_init(ZEND_STRL("serverVersion"), 1);
+       ZVAL_UNDEF(&default_value);
+       zend_declare_typed_property(php_pqconn_class_entry, name, &default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
+       zend_string_release(name);
+       }
+#endif
        ph.read = php_pqconn_object_read_server_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("serverVersion"), (void *) &ph, sizeof(ph));
 #endif