Derick Rethans wrote:
Problems:
- There is no way to document the 'virtual' properties with any of
the existing documentation tools (such as phpdoc and doxygen)- There is no way how the magic methods know if a specific 'virtual'
property exists or not as those properties are not declared
usually
- unless you define an array with property names as a class
constant (which is not allowed either).- There is no way for the magic methods to return a meaningfull
error when a property doesn't "exist". Of course it is possible to
throw an error with "trigger_error" or "throw" in case a property
doesn't "exist" in a specific class, but the file and line numbers
would not match the actually get/set action.
debug_backtrace()
can
be used to retrieve the correct file and line, but as you have to
do this for every class where you want to use setters and getters
and you have to implement your own error message rendering
function this is not really a suitable option either.
As far as introspection (points 1 and 2), would it be reasonable to
allow __get/__set to be called without any parameters in which case
they would be expected to optionally return an array or object
designating the properties that they support? I know that this is
somewhat magical but dynamic features are somewhat magical to begin
with -- which is part of their charm.
FWIW, it would be nice if there was a way for __get/__set to support
references.
Greetings.
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Hello boots,
Thursday, August 4, 2005, 6:29:51 AM, you wrote:
Derick Rethans wrote:
Problems:
- There is no way to document the 'virtual' properties with any of
the existing documentation tools (such as phpdoc and doxygen)- There is no way how the magic methods know if a specific 'virtual'
property exists or not as those properties are not declared
usually
- unless you define an array with property names as a class
constant (which is not allowed either).- There is no way for the magic methods to return a meaningfull
error when a property doesn't "exist". Of course it is possible to
throw an error with "trigger_error" or "throw" in case a property
doesn't "exist" in a specific class, but the file and line numbers
would not match the actually get/set action.
debug_backtrace()
can
be used to retrieve the correct file and line, but as you have to
do this for every class where you want to use setters and getters
and you have to implement your own error message rendering
function this is not really a suitable option either.
As far as introspection (points 1 and 2), would it be reasonable to
allow __get/__set to be called without any parameters in which case
they would be expected to optionally return an array or object
designating the properties that they support? I know that this is
somewhat magical but dynamic features are somewhat magical to begin
with -- which is part of their charm.
To complicated and uses one thing to do two completley different things
which confuses everyone.
FWIW, it would be nice if there was a way for __get/__set to support
references.
Best regards,
Marcus