]> granicus.if.org Git - php/commitdiff
added php_mysqli_construct_get to support __construct in extended classes
authorGeorg Richter <georg@php.net>
Wed, 23 Jun 2004 16:47:25 +0000 (16:47 +0000)
committerGeorg Richter <georg@php.net>
Wed, 23 Jun 2004 16:47:25 +0000 (16:47 +0000)
ext/mysqli/mysqli.c
ext/mysqli/mysqli_fe.c

index e149f8af672d99d29d3055313b45578d89618146..c2f72b5d903454a2c14436c7d03ce4e0453b4b7b 100644 (file)
@@ -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);
 
index b39f9a9b5fe26e7000031ffd6d72c37f50c2788f..3ceaba1c35e83a45911a251c40176095ed25bc39 100644 (file)
@@ -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)