From: David Soria Parra Date: Sun, 30 Dec 2007 17:51:35 +0000 (+0000) Subject: - Fixed bug #43663 (Extending PDO class with a __call() function doesn't work). X-Git-Tag: RELEASE_1_3_1~445 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=07487ad0e739e7c7c0db67c9e7a1c7e3e96ed35d;p=php - Fixed bug #43663 (Extending PDO class with a __call() function doesn't work). CVS --- diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 85a53bf93d..251c841fe8 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -1273,12 +1273,19 @@ static union _zend_function *dbh_method_get( if (zend_hash_find(dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_DBH], lc_method_name, method_len+1, (void**)&fbc) == FAILURE) { - fbc = NULL; + if (std_object_handlers.get_method) { + fbc = std_object_handlers.get_method(object_pp, lc_method_name, method_len TSRMLS_CC); + } + + if (!fbc) { + fbc = NULL; + } + goto out; } /* got it */ } - + out: efree(lc_method_name); return fbc; diff --git a/ext/pdo/tests/bug_43663.phpt b/ext/pdo/tests/bug_43663.phpt new file mode 100644 index 0000000000..25af588bbe --- /dev/null +++ b/ext/pdo/tests/bug_43663.phpt @@ -0,0 +1,23 @@ +--TEST-- +PDO Common: Bug #43663 (__call on classes derived from PDO) +--FILE-- +--SKIPIF-- + +--FILE-- +foo(); +$a->bar(); +--EXPECT-- +Called foo in test +Called bar in test