Hello Melvyn,

Wednesday, July 16, 2003, 1:27:52 AM, you wrote:

MS> Hi Marcus,

MS> On Wednesday 16 July 2003 00:11, Marcus Börger wrote:

>> Wednesday, July 16, 2003, 12:08:29 AM, you wrote:
>>
>> GB> Hi,
>>
>> GB> I've heard rumors that there are plans to take away the ability to
>> GB> assign to $this in php 5.  If this is true, I would like to place a
>> vote GB> to keep it, as it can be very useful in conjunction with
>> GB> __call()/__get()/__set() to implement run-time aggregation seamlessly
>>
>> Why do you want to trick yourself and the engine? Can't you find a correct
>> solution?

MS> I'm not farmiliar with the example Greg is getting at, but the following bit 
MS> me recently:
MS> class DomFromString extends DomDocument
MS> {
MS>         function DomFromString($string)
MS>         {
MS>                 $this = domxml_open_mem($string);
MS>         }
This should be a factory patter...static function ...return domxml_open...
        
MS>         function foo()
MS>         {
MS>                 echo('foo');
MS>         }
MS> }

MS> $doc = new DomFromString($xml);
$Root = $doc->>document_element();

MS> var_dump($doc, $Root);
echo($doc->>foo()); // call to undefined function

MS> I'm farmiliar with the trick-element of this code and why it won't work, but 
MS> the way to do something similar now, is to *not* extend the extension 
MS> provided class, use a $this->real_instance and provide methods that re-route 
MS> the already existing methods to $this->real_instance.

MS> Unless there's something I'm missing, I find the latter solution has a much 
MS> larger trick element and adds a lot of unnecessary typing.

MS> Note that the goal here, is to extend a class of which may not have the source 
MS> (or the time/ability to modify it)  AND override it's constructor or the 
MS> constructor is provided by a function, rather than 'new' principle.


You can of course overwrite the constructor in a derived class and all. So you
are missing the possibility to exchange the contants of a dom clas, that's all
you do this tricky stuff for?

Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]


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

Reply via email to