[osflash] Return two instances of objects keeping the same reference on the Actionscript side
Jonathan Valliere
sybersnake at gmail.com
Tue Oct 28 16:40:05 PST 2008
Just did a little research for the amfphp guys, Php2go seems to have a
Hashmap class( string keys ). However, seems a Dictionary might be a
better alternative ( unless your hashmap implementation supports
Objects as keys )
On Oct 28, 2008, at 6:47 PM, Evert | Rooftop wrote:
> The AMF protocol does allow object references, as long as they're in
> the same packet. So this will not work on multiple requests. There's
> two howevers:
>
> * While a PHP implemention (amfphp) can autodetect it, it is a
> heavy process as it requires looping through all the objects to see
> if an object was already used. Now, this could be done using a
> hashmap.. but not extremely straightforward
> * You know how your business logic works and what a reference (to a
> category/id or otherwise) works from a logic perspective. Generally
> you'd want to avoid any automatic 'magic' and simply supply category
> id's, and make the references manually.
>
> Novice developers love automatic behavior (Classmapping also falls
> into this category for me) but manual, predictable behavior often
> produces more maintainable and less error-prone results. </endofrant>
>
> Evert
>
>
> On 28-Oct-08, at 4:55 PM, Jonathan Valliere wrote:
>
>> It is my understanding that the Native Flash Objects are assembled
>> automatically in the Flash player based on the AMF data sent. Just
>> as if you had a custom XML-based object representation and a
>> parser. Therefore there wouldn't be such a way to do runtime
>> memory referencing unless the protocol supported it explicitly.
>>
>>
>> On Oct 28, 2008, at 10:27 AM, João Saleiro wrote:
>>
>>> Hello,
>>>
>>> imagine the following scenario:
>>>
>>> - backend in AMFPHP;
>>> - a remote procedure that returns a complex type:
>>>
>>> Categories[]
>>> CategoryVO (#12334)
>>> id: 1
>>> name: Accounting
>>> etc...
>>> CategoryVO (#34221)
>>> id: 2
>>> name: Reporting
>>> etc...
>>>
>>>
>>>
>>> - Another remote procedure that returns another complex object:
>>>
>>> UserVO (#5456)
>>> id: 1
>>> name: John Doe
>>> CategoryVO (#2145)
>>> id: 2
>>> name: Reporting
>>>
>>> The category of the user John Doe is "Reporting", id 2. It's the
>>> same previously returned by the other service, on the position 1
>>> of the categories array. The problem is that, on the client side:
>>>
>>> categories[1]==user.category
>>>
>>> is false. It's the same category, the problem is that when the
>>> object mapping occurs on the client side, it creates a new
>>> reference, so they are different instances of the same object.
>>> Right now, we need to make some loopings on the client-side to
>>> find and replace references. This involves a lot of work, and has
>>> performance considerations.
>>>
>>> Is it possible, or is there a solution to make same objects
>>> returned from the server side have same references on the client
>>> side?
>>>
>>> Thanks,
>>>
>>> João Saleiro
>>>
>>> CTO @ Webfuel
>>> Adobe Community Expert
>>> Co-founder of the Portuguese RIA Community
>>>
>>> <btn_profile_greytxt_80x15.gif>
>>> _______________________________________________
>>> osflash mailing list
>>> osflash at osflash.org
>>> http://osflash.org/mailman/listinfo/osflash_osflash.org
>>
>> _______________________________________________
>> osflash mailing list
>> osflash at osflash.org
>> http://osflash.org/mailman/listinfo/osflash_osflash.org
>
> _______________________________________________
> osflash mailing list
> osflash at osflash.org
> http://osflash.org/mailman/listinfo/osflash_osflash.org
More information about the osflash
mailing list