On 09/03/2010 01:20 PM, Pierre Joye wrote:
hehe, I did not mean that this mail was offensive. Only that this
stuff is the best way to get mad at php internals. A more verbose post
would help to, what's your actual proposal/wish or an example case :)
Alright then.
OBJECTS2_HOWTO--okay maybe a tiny bit out of date, but nevertheless--states
that for the get_property_ptr_ptr object handler, which is supposed to
return zval** of the property, one can use zend_proxy_objects for
properties not really existing as zvals.
This objects overload the get and set object handlers (note: not __get/__set)
to enable something along the lines:
class user_class extends internal_class {
function method() {
$ref = &$this->internal_property;
/* $ref now actually is a zend_proxy_object */
$ref = 1;
}
}
... but no other object handler that add_ref, del_ref, clone_obj, get
and set are defined, which causes everything from fatal errors to SEGVs
on simple statements like var_dump, echo, (string)-cast etc...
Additionally on object destruction, at the latest on shutdown,
(the default) zend_objects_destroy_object causes a SEGV because
zend_proxy_objects actually are not zend_objects and don't have
a class entry.
Hrm.. after re-reading this mail, I don't think it's more
comprehensive than the first one... ;)
Mike
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php