Re: Re: remove or fix zend_object_proxies
| From: | Michael Wallner | Date: | Fri, 03 Sep 2010 11:37:58 +0000 |
| Subject: | Re: Re: remove or fix zend_object_proxies | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-49563@lists.php.net to get a copy of this message | ||
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