If I define a descendant class, I *obviously* know what create_object should
do, as this should only effect internal classes.  So could anybody please
explain to me why the parent's create_object is enforced?

It causes to write hacks like:

---8<---
zend_class_entry *ce;
zend_object_value (*__create_object)(zend_class_entry *ce TSRMLS_DC);

INIT_CLASS_ENTRY(ce, "classname", php_my_method_entry);
ce.create_object = php_my_object_new;
/* hack starts here */
__create_object = parent_ce->create_object;
parent_ce->create_object = php_my_object_new;
php_my_class_entry = zend_register_internal_class_ex(&ce, parent_ce, NULL 
TSRMLS_CC);
parent->create_object = __create_object;
--->8---

If this limitation is there without a really good reason, I'd like to get rid 
of it.

Thanks,
Mike

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to