--- Andi Gutmans <[EMAIL PROTECTED]> wrote:
> At 12:46 10/04/2002 -0700, brad lafountain wrote:
> 
> >--- 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.
> 
> Told you I didn't read all Emails :)

 :)

> 
> >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();
> 
> I was thinking that we could have an explicit way of calling the right one. 

 hmm what would this look like?

 $a->c::print();
 i guess that's not that bad. and its kinda consistant

 but i do like
 $a->c->print();
 too..


 and would we treat member of b and c the same way
 $a->member_of_c = false;

 then the collision again....
 $a->same_name_var = false;

 $a->c::same_name_var = false;
 $a->b::same_name_var = false;
 
 or

 $a->c->same_name_var = false;
 $a->b->same_name_var = false;

> I do think that this by far the best solution because as I said it's 
> extremely simple and it doesn't get us into most of the deep issues the 
> other solutions get us into.
> I think in real life coding it will work extremely well. For each proposal 
> you can find problems.
> 
> >and how does this consern serilization. Would it need to be change do 
> >designate
> >which objects are aggregated?
> 
> Each object would know which objects it aggregates so I don't see a real 
> big problem here. I guess potentially there are always problems when 
> serializing nested objects.

 I wasn't thinking it would be a problem but the serialization could would need
to change to handle this type of change.

BTW:
 Have you looked at my patch to handle method calls differently? 

 - Brad


__________________________________________________
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

Reply via email to