I'm looking to update the libical extension I wrote awhile back to
use the new features of ZE2 in PHP5 (libical has been written in
such a manner that the features of ZE2 are an excellent match to
libical's interface). I've been looking over the
default exception class in Zend/zend_default_classess.c, and it
looks to be a good starting point for what I'd like to do.
So, the questions:
-
Using the __ function features (specifically I'm interested
in __clone(), __construct(), __destruct(), and __toString())
seems to just mean adding the appropriate entries to the
zend_function_entry structure for the class. I notice that
when the class is registered, the handlers.clone_obj entry
is set to NULL. Am I safe in assuming that setting an entry
toNULL
in the handlers struct implies using the named
function in the zend_function_entry list? (I think the above
only applies to __clone(), __get(), and __set()?) -
Private/protected internal class methods can be defined
using the ZEND_ME macro with the flags set to ZEND_ACC_PRIVATE
or ZEND_ACC_PROTECTED as appropriate? Also, static class methods
can be defined also using ZEND_ME with ZEND_ACC_STATIC as the
flags parameter?I guess I only have one class where an internal private/protected
class method would be useful, but there are several classes that
could benefit from static class methods. -
Per-class constants: Almost every class in the libical extension
can use per-class constants, but I don't see the code for that in
the Zend API. Do I need to dig a bit deeper (pointers to appropriate
Zend headers/files appreciated :) or is there a specific set of
functions that doesn't have an API yet that I should be using?
Any help would be appreciated. Thanks!
-Bob