|
33 | 33 | #include "zend_exceptions.h"
|
34 | 34 | #include "zend_object_handlers.h"
|
35 | 35 | #include "zend_hash.h"
|
| 36 | +#include "zend_interfaces.h" |
36 | 37 |
|
37 | 38 | static int pdo_dbh_attribute_set(pdo_dbh_t *dbh, zend_long attr, zval *value);
|
38 | 39 |
|
@@ -1153,22 +1154,6 @@ static PHP_METHOD(PDO, quote)
|
1153 | 1154 | }
|
1154 | 1155 | /* }}} */
|
1155 | 1156 |
|
1156 |
| -/* {{{ proto PDO::__wakeup() |
1157 |
| - Prevents use of a PDO instance that has been unserialized */ |
1158 |
| -static PHP_METHOD(PDO, __wakeup) |
1159 |
| -{ |
1160 |
| - zend_throw_exception_ex(php_pdo_get_exception(), 0, "You cannot serialize or unserialize PDO instances"); |
1161 |
| -} |
1162 |
| -/* }}} */ |
1163 |
| - |
1164 |
| -/* {{{ proto int PDO::__sleep() |
1165 |
| - Prevents serialization of a PDO instance */ |
1166 |
| -static PHP_METHOD(PDO, __sleep) |
1167 |
| -{ |
1168 |
| - zend_throw_exception_ex(php_pdo_get_exception(), 0, "You cannot serialize or unserialize PDO instances"); |
1169 |
| -} |
1170 |
| -/* }}} */ |
1171 |
| - |
1172 | 1157 | /* {{{ proto array PDO::getAvailableDrivers()
|
1173 | 1158 | Return array of available PDO drivers */
|
1174 | 1159 | static PHP_METHOD(PDO, getAvailableDrivers)
|
@@ -1241,8 +1226,6 @@ const zend_function_entry pdo_dbh_functions[] = /* {{{ */ {
|
1241 | 1226 | PHP_ME(PDO, errorInfo, arginfo_pdo__void, ZEND_ACC_PUBLIC)
|
1242 | 1227 | PHP_ME(PDO, getAttribute, arginfo_pdo_getattribute, ZEND_ACC_PUBLIC)
|
1243 | 1228 | PHP_ME(PDO, quote, arginfo_pdo_quote, ZEND_ACC_PUBLIC)
|
1244 |
| - PHP_ME(PDO, __wakeup, arginfo_pdo__void, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) |
1245 |
| - PHP_ME(PDO, __sleep, arginfo_pdo__void, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) |
1246 | 1229 | PHP_ME(PDO, getAvailableDrivers, arginfo_pdo__void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
|
1247 | 1230 | PHP_FE_END
|
1248 | 1231 | };
|
@@ -1384,6 +1367,8 @@ void pdo_dbh_init(void)
|
1384 | 1367 | INIT_CLASS_ENTRY(ce, "PDO", pdo_dbh_functions);
|
1385 | 1368 | pdo_dbh_ce = zend_register_internal_class(&ce);
|
1386 | 1369 | pdo_dbh_ce->create_object = pdo_dbh_new;
|
| 1370 | + pdo_dbh_ce->serialize = zend_class_serialize_deny; |
| 1371 | + pdo_dbh_ce->unserialize = zend_class_unserialize_deny; |
1387 | 1372 |
|
1388 | 1373 | memcpy(&pdo_dbh_object_handlers, &std_object_handlers, sizeof(zend_object_handlers));
|
1389 | 1374 | pdo_dbh_object_handlers.offset = XtOffsetOf(pdo_dbh_object_t, std);
|
|
0 commit comments