From: Georg Richter Date: Wed, 23 Jun 2004 16:47:25 +0000 (+0000) Subject: added php_mysqli_construct_get to support __construct in extended classes X-Git-Tag: php-5.0.0~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f063bdec06c058822d36026e91e55f768d991dec;p=php added php_mysqli_construct_get to support __construct in extended classes --- diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index e149f8af67..c2f72b5d90 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -269,6 +269,27 @@ void mysqli_add_property(HashTable *h, char *pname, mysqli_read_t r_func, mysqli } /* }}} */ +static union _zend_function *php_mysqli_constructor_get(zval *object TSRMLS_DC) +{ + mysqli_object *obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC); + + if (obj->zo.ce != mysqli_link_class_entry) { + return obj->zo.ce->constructor; + } else { + static zend_internal_function f; + + f.function_name = mysqli_link_class_entry->name; + f.scope = mysqli_link_class_entry; + f.arg_info = NULL; + f.num_args = 0; + f.fn_flags = 0; + + f.type = ZEND_INTERNAL_FUNCTION; + f.handler = ZEND_FN(mysqli_connect); + + return (union _zend_function*)&f; + } +} /* {{{ mysqli_objects_new */ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_type TSRMLS_DC) @@ -374,6 +395,7 @@ PHP_MINIT_FUNCTION(mysqli) mysqli_object_handlers.read_property = mysqli_read_property; mysqli_object_handlers.write_property = mysqli_write_property; mysqli_object_handlers.get_property_ptr_ptr = NULL; + mysqli_object_handlers.get_constructor = php_mysqli_constructor_get; zend_hash_init(&classes, 0, NULL, NULL, 1); diff --git a/ext/mysqli/mysqli_fe.c b/ext/mysqli/mysqli_fe.c index b39f9a9b5f..3ceaba1c35 100644 --- a/ext/mysqli/mysqli_fe.c +++ b/ext/mysqli/mysqli_fe.c @@ -206,7 +206,6 @@ function_entry mysqli_link_methods[] = { PHP_FALIAS(set_local_infile_default,mysqli_set_local_infile_default,NULL) PHP_FALIAS(set_local_infile_handler,mysqli_set_local_infile_handler,NULL) PHP_FALIAS(master_query,mysqli_master_query,NULL) - PHP_FALIAS(mysqli, mysqli_connect, NULL) PHP_FALIAS(multi_query,mysqli_multi_query,NULL) PHP_FALIAS(more_results,mysqli_more_results, NULL) PHP_FALIAS(next_result, mysqli_next_result, NULL)