Re: [PHP-DEV] Declaration of Bar::__construct() must be compatible

2004-02-27 Thread Stephane Drouard
== Quote from Andi Gutmans ([EMAIL PROTECTED])'s article > a) Don't check signature for constructors. Constructors are definitely not virtual methods. So no reason to check signature. Moreover, this is a non sense to declare constructors in interfaces or abstract constructors in abstract classes.

[PHP-DEV] Re: [PHP-DOC] Migration Appendice

2004-02-24 Thread Stephane Drouard
As this document refers to zend-engine-2.php, this latter should be updated. Here are some remarks: Private and Protected Members * reverse $Bar and $Foo strings * instead of "should/shouldn't print" -> OK or error Interfaces * may choose another name than the polemical "Throwable" one ;-) C

[PHP-DEV] Re: Static weirdness..

2004-02-19 Thread Stephane Drouard
== Quote from Greg Beaver ([EMAIL PROTECTED])'s article > class foo { > static function bar() > { > echo 'hello'; > } > } > > $bar = 'hello'; > $a = new foo; > $a->bar(); // this could be disabled to error out easily > $a::bar(); // my patch now allows this to print "hello" >

Re: [PHP-DEV] more on interface inheritance issues

2004-02-17 Thread Stephane Drouard
== Quote from Hans Lellelid ([EMAIL PROTECTED])'s article > In more traditional PHP this works fine: > > class A { > function init() { ... } > function doSomething($arg1, $arg2) { ... } > } > > class B extends A { > function doSomething($arg1, $arg2, $arg3, $arg4 = null) { ... } > f

Re: [PHP-DEV] Re: IException

2004-02-17 Thread Stephane Drouard
== Quote from Derick Rethans ([EMAIL PROTECTED])'s article > On Tue, 17 Feb 2004, Stanislav Malyshev wrote: > > > >> >Again, I don't see any complexity arising from this: The average user > > >> >would simply use "catch (IException $e)" instead of "catch (Exception > > > > That looks weird. Why IEx

Re: [PHP-DEV] Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_default_classes.c zend_default_classes.h zend_execute.h zend_execute_API.c

2004-02-17 Thread Stephane Drouard
== Quote from Marcus Boerger ([EMAIL PROTECTED])'s article > No those are read access members to private property members. When you lok > at the exception class: > php -r 'reflection_class::export("exception");' > then you'll encounter that you can overload __toString() and the > __construct(). O

Re: [PHP-DEV] Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_default_classes.c zend_default_classes.h zend_execute.h zend_execute_API.c

2004-02-17 Thread Stephane Drouard
== Quote from Marcus Boerger ([EMAIL PROTECTED])'s article > as i said before there is a reason for that: I played a long time with > exceptions until they became what they are right now. And and attempt > to increase the visibility of one of its members can be used to make it > SEGV. So i don't wa

Re: [PHP-DEV] Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_default_classes.c zend_default_classes.h zend_execute.h zend_execute_API.c

2004-02-16 Thread Stephane Drouard
== Quote from Andi Gutmans ([EMAIL PROTECTED])'s article > Marcus didn't mean it adds complexity to the code but to PHP. It's > obviously quite easy to implement this interface; implementation was never > a problem. > I don't really care too much if we have such an interface or not, although > I do

[PHP-DEV] Re: Beta 4 RC 1

2004-02-12 Thread Stephane Drouard
== Quote from Andi Gutmans ([EMAIL PROTECTED])'s article > I rolled a preliminary beta 4 package just to make sure nothing is > seriously broken. You can still commit fixes in the next few hours and if I > don't hear of any serious show stoppers, I'll re-bundle and release beta 4 > later today. An

Re: [PHP-DEV] New destructors implementation

2004-02-09 Thread Stephane Drouard
== Quote from Eric Daspet ([EMAIL PROTECTED])'s article > Be carreful, this does not resolve all things : > > $source1 = new stdClass ; > $source2 = new stdClass ; > $source3 = new stdClass ; > $refLevel1 = new stdClass ; > $refLevel2 = new stdClass ; > > $source1->ref = $refLevel1 ; > $source2->re

Re: [PHP-DEV] New destructors implementation

2004-02-09 Thread Stephane Drouard
== Quote from Stephane Drouard ([EMAIL PROTECTED])'s article > == Quote from Andi Gutmans ([EMAIL PROTECTED])'s article > > He doesn't necessarily own a reference but tries to access it in the > > destructor. > > IMO, this is bad programming. If an object wants

Re: [PHP-DEV] New destructors implementation

2004-02-09 Thread Stephane Drouard
== Quote from Andi Gutmans ([EMAIL PROTECTED])'s article > He doesn't necessarily own a reference but tries to access it in the > destructor. IMO, this is bad programming. If an object wants to access another object (global or not), it has to own a reference on it, to guaranty the referenced obje

Re: [PHP-DEV] New destructors implementation

2004-02-09 Thread Stephane Drouard
== Quote from Zeev Suraski ([EMAIL PROTECTED])'s article > They're not locked to 1, and nothing in a symbol table will ever be with a > refcount of less than 1... But generally, all global variables (or for > that matter, all variables period) have a refcount of 1, unless you do > something 'speci

Re: [PHP-DEV] New destructors implementation

2004-02-09 Thread Stephane Drouard
== Quote from Zeev Suraski ([EMAIL PROTECTED])'s article > If you're talking about destruction that honors reference counts (which has > nothing to do with order, it's still randomly-ordered), then yes, it's > *generally* ok. Yes, I was talking about that point. > But that what we had before, an

Re: [PHP-DEV] New destructors implementation

2004-02-07 Thread Stephane Drouard
== Quote from Zeev Suraski ([EMAIL PROTECTED])'s article > To make a long story short, no. Circular references are hardly the > problem, even a one-sided reference can be problematic. Just one example > (there are many others) - you have $container and $obj, both are global > variables, $containe

Re: [PHP-DEV] New destructors implementation

2004-02-06 Thread Stephane Drouard
== Quote from Red Wingate ([EMAIL PROTECTED])'s article > Is the removal of a specific order on the __destruct() calls > necessary? It's a pain in the ass the be unable to predict > in which order the __destruct() calls are made. I did the following test: n = $n; } function __destruct() {

[PHP-DEV] Re: PHP5: Exception not correctly thown with __get, __set and __toString

2004-02-04 Thread Stephane Drouard
The new implementation of exception mechanism solves the problem with __get and __toString, but throwing an exception within __set results in a segmentation fault. Stephane -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP-DEV] New exceptions mechanism

2004-02-03 Thread Stephane Drouard
== Quote from Markus Fischer ([EMAIL PROTECTED])'s article > At least, saying 'InstantiateMe->' looks wrong to me as I'm calling > 'StaticClass::' actually. You have to declare your method as static: Stephane -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visi

Re: [PHP-DEV] __clone() implementation

2004-02-02 Thread Stephane Drouard
== Quote from Ferdinand Beyer ([EMAIL PROTECTED])'s article > I like the new way very much but I dislike that PHP tells me how to > name a function parameter. __set() and __get(), for instance, do not > force fixed argument names either, do they? I agree. Anyway, do we now need $that to be passed

Re: [PHP-DEV] __clone() implementation

2004-02-02 Thread Stephane Drouard
== Quote from Zeev Suraski ([EMAIL PROTECTED])'s article > Both are valid points, and they both sound like the same problem from two > different angles. I think that the best approach would be to first do an > implicit clone (i.e., 'dumb' copy of all of the elements), and then call > __clone(), ev

Re: [PHP-DEV] __clone() implementation

2004-02-02 Thread Stephane Drouard
== Quote from Zeev Suraski ([EMAIL PROTECTED])'s article > Andi and I have revisited the __clone() implementation and must agree that > it wasn't quite right (mainly due to it not working with inheritance). > We have rewritten it now (major change!!!) because we didn't want PHP 5 to > be released w

[PHP-DEV] PHP5: Exception not correctly thown with __get, __set and __toString

2004-02-02 Thread Stephane Drouard
Hello, The following code does not work as expected: foo; print('[/test]'); // printed: bug ?> '/get' is not printed, so the throw statement is correctly executed, but '/test' is printed, so the exception is not correctly "propagated" to the caller. Note that the exception will be thrown later

Re: [PHP-DEV] base class

2004-01-27 Thread Stephane Drouard
== Quote from Christian Schneider ([EMAIL PROTECTED])'s article > IMHO PHP doesn't need to be perfect in an academic OO sense but needs to > provide what the majority of users need. Yes, I'm certainly too much "academic" OO oriented, that's the reason why I think all the magic methods must be im

Re: [PHP-DEV] base class

2004-01-27 Thread Stephane Drouard
Chris, For sure I can't answer to your question, but why would you only implement it to construtors? My original request was that all classes inherit from a base class provided by PHP (even if not explicitly written), and that this base class implements all magic methods in the appropriate way

Re: [PHP-DEV] Exception / trace member

2004-01-24 Thread Stephane Drouard
Hello Marcus, == Quote from Marcus Boerger ([EMAIL PROTECTED])'s article > i had reasons to make that property private. You may use getTrace() to > read the contents and if you must overwrite it because you want to misuse > the whole thing then you can overwrite the read access method, too. This >

Re: [PHP-DEV] base class

2004-01-24 Thread Stephane Drouard
== Quote from Timm Friebe ([EMAIL PROTECTED])'s article > It's basically the same with the built-in exception class. I can't have > my own (at least not with the sexy-most name "Exception"). Then, in my > (very personal) view I want it designed differently, and want to have it > extend _my_ base cl

Re: [PHP-DEV] __clone() implementation

2004-01-23 Thread Stephane Drouard
Marcus, > you're right $that must be available in the derived __clone(). You will solve one problem: being able to call parent::__clone(), but it won't remove the constraint on derived classes (declaring members) to implement __clone() when one of its parents implements it. This is just to limi

Re: [PHP-DEV] base class

2004-01-23 Thread Stephane Drouard
Marcus, The idea behind this kind of request is to speed up development time. And the way a language and its base classes are implemented could really help to reach this goal. When you write "a change is a change", you're right. But the way you have written your code could really reduce the ris

Re: [PHP-DEV] Exception / trace member

2004-01-23 Thread Stephane Drouard
Hello Marcus, Hum... you fixed the issue but not really in the way I expected it. Now my code does not work... My message was not only to report a bug, but to ask *not* to fix it as expected. Particularly to put the "trace" member as protected, (or "getTrace()" as virtual and not final). Reme

[PHP-DEV] base class

2004-01-22 Thread Stephane Drouard
PHP implements an "stdClass". I expected that: * this was the base class for all classes, even if they do not explicitly "extends stdClass", * this class implemented all the "standard" methods (__construct(), __destruct(), ...). In the PHP5 presentation, it is mentionned the interest of unified c

[PHP-DEV] Exception / trace member

2004-01-22 Thread Stephane Drouard
The current implementation of class Exception has a private "trace" member, which is used to store the backtrace. But if you throw an exception of a derived class of Exception, print_r() displays an empty "trace:private" member, as well as a "trace" (public) member that really holds the backtrac

[PHP-DEV] __clone() implementation

2004-01-22 Thread Stephane Drouard
I'm currently using PHP4 and I'm evaluating PHP5 for its new exciting features. I have some remarks, split into distinct posts. The first one is about the current implementation of __clone(): * a derived __clone() can't call parent::__clone() because $that is only declared for the first __clone