summaryrefslogtreecommitdiff
path: root/ext/pdo_pgsql/php_pdo_pgsql_int.h
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-05-14 11:51:36 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-06-24 11:52:36 +0200
commit653e4ea1c57def2d5cd75b7da9e3943a841b7d6c (patch)
tree479717f0e9a8eb24e733990512304fc7209ca45d /ext/pdo_pgsql/php_pdo_pgsql_int.h
parent2a28589c7def80ecc7bb3417a8853df6b7860b46 (diff)
downloadphp-git-653e4ea1c57def2d5cd75b7da9e3943a841b7d6c.tar.gz
Add flag to forbid dynamic property creation on internal classes
While performing resource -> object migrations, we're adding defensive classes that are final, non-serializable and non-clonable (unless they are, of course). This path adds a ZEND_ACC_NO_DYNAMIC_PROPERTIES flag, that also forbids the creation of dynamic properties on these objects. This is a subset of #3931 and targeted at internal usage only (though may be extended to userland at some point in the future). It's already possible to achieve this (what the removed WeakRef/WeakMap code does), but there's some caveats: First, this simple approach is only possible if the class has no declared properties, otherwise it's necessary to special-case those properties. Second, it's easy to make it overly strict, e.g. by forbidding isset($obj->prop) as well. And finally, it requires a lot of boilerplate code for each class. Closes GH-5572.
Diffstat (limited to 'ext/pdo_pgsql/php_pdo_pgsql_int.h')
0 files changed, 0 insertions, 0 deletions