
Originally Posted by
Ren
Yes, if they keep the static method syntax it'll be interesting exactly how they solve it. debug_backtrace() & parse the source seems the only 100 % PHP solution.
I agree with your earlier prediction - that a change in PHP itself will be made, and an alternative syntax will be supported in order to cater to existing versions. Mike's public comments lend credibility to this prediction.
I seem to recall a bug in debug_backtrace() that made the following output myChild:
PHP Code:
<?php
class myParent
{
static public function myMethod()
{
$debug = debug_backtrace();
echo $debug[0]['class'];
}
}
class myChild extends myParent {}
myChild::myMethod();
?>
I can't remember when this was fixed, or if I'm just losing my mind. :-)
[Edited]

Originally Posted by
kyberfabrikken
But pretending that the simplest possible solution will always be the best, and that it can't cause trouble ahead with more complex applications is just naive.
I don't think Zend has ever claimed that. Like I said, extreme simplicity is just a guiding principle.
Andi mentioned in the webcast that the framework achieves extreme simplicity in a number of ways, one of which is by not trying to solve every problem and by being flexible enough that PHP developers can still solve their more unique or complex problems themselves.

Originally Posted by
kyberfabrikken
The other edge of that sword however, is that an overly simplified solution may be getting in the way for a more sophisticated solution. I really think that flexibility is more important than simplicity, in a framework.
I think these two characteristics can happily coexist. A simple solution only gets in the way when you try to use it to solve a problem it can't solve. Otherwise, it's just a few extra lines of code taking up space.
[Edited]

Originally Posted by
33degrees
That may be true, but since nobody here has found or seen a way to make that particular example work in PHP5, you can't blame us from thinking that there may not be way of doing it without adding to the language itself, and so that there's actually no working code.
I don't blame you at all for thinking that.
Bookmarks