--- Andi Gutmans <[EMAIL PROTECTED]> wrote:
> Hey guys,
>
> I still haven't finished reading the looooooong thread on aggregation vs.
> MI because you guys write so much :)
> I would like to make a proposal for a solution which I think would fit PHP
> very nicely.
> My main concern with MI is that there are many problems with it including
> namespace clashes and other problems most of you are probably familiar
> with. I think trying to work around and find solutions for all of these
> would make a PHP implementation of MI extremely hard to use and would move
> away from the spirit of PHP which is powerful simplicity.
> What I have in mind is something similar to aggregation (in the original
> C++ sense which means a "has a" relationship) but improve it with an
> auto-proxy mechanism.
> Basically what I'd like to have is something like:
>
> class a aggregates b, c {
> ...
> }
I did suggest this method already.
But it really doesn't address the naming clash
class b
{
function print()
{
}
}
class c
{
function print()
{
}
}
class a aggregates b, c
{
}
$a = new A();
$a->print();
you said in the order they were aggregated. but what if i really want to call
c->print();
would i do something like this.
$a->c->print();
and how does this consern serilization. Would it need to be change do designate
which objects are aggregated?
- Brad
>
> What would happen is that 'a' will hold an instance of 'b' and an instance
> of 'c' like the old historic meaning of aggregation.
> However, when a method is called on 'a' and is not found we would
> automatically proxy the method call to these instances (in the order of
> their aggregation) and call the first existing one.
> The plus is that you get something very similar to MI without having to
> deal with namespace clashes such as problems when b and c have the same
> variable name. Each object lives on its own but you get a central object
> which reflects the interfaces of all three objects.
>
> This is a very elegant and simple IMO. It should answer most needs.
> I hope I explained it well. Let me know if you have any questions.
> Andi
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php