I have an example of a Cairngorm Store Flex application connects to
multiple backends.  You can find it here:
http://api.renaun.com/flex2/posts/CairngormStoreMultipleBackend/

Two of the backends are AMFPHP 1.2 (AMF0 using RemoteObjectAMF0) and
AMFPHP 1.9 (AMF3).  Both examples returned typed ProductVO objects.

As for the nested VO's... I can't remember how AMFPHP handles it.  If
the objects are mapped correctly I believe AMFPHP will type them
correctly.  Something I might have to look into...

Renaun

Source for the above link can be found at:
http://api.renaun.com/flex2/posts/CairngormStoreMultipleBackend/CairngormStoreMultipleBackend.zip

--- In [email protected], "Mike Crowe" <[EMAIL PROTECTED]> wrote:
>
> Interesting.  I'm also using the renaun AMF0 templates.  I wonder if
> that could be the problem.  Have you moved to any AMF3 setups?
> 
> 
> --- In [email protected], Kevin <lists@> wrote:
> >
> > wow.  this seems like a lot of work to just map a VO object. Makes
me  
> > wonder if it is worth it.  What's the point of mapping the objects
if  
> > you have to do the conversion manually anyway?
> > 
> > What is weird is that in another command, I have an array of VO's  
> > being returned from PHP which all map correctly using the  
> > $_explicitType variable.  However, when i simply return only one VO  
> > object from PHP, then I get the error.
> > 
> > I'll keep looking into this...
> > 
> > Thanks, Kevin
> > 
> > 
> > 
> > 
> > On Feb 10, 2007, at 8:15 AM, Mike Crowe wrote:
> > 
> > > Kevin,
> > >
> > > I'm in the same boat. I had to initialize my VO object in the
> > > constructor. So, in your getUserInfo(), you would do (using my VO):
> > >
> > > var teamData:TeamVO = new TeamVO(data.result);
> > >
> > > and in your VO:
> > >
> > > public function TeamVO(toSet:Object=null) {
> > > registerClassAlias("com.mikecrowe.all.vo.TeamVO", TeamVO);
> > > _uuid = UIDUtil.createUID();
> > > if ( toSet ) {
> > > try { uuid = toSet.uuid; } catch ( e:Error ) {
> > > trace("Error setting uuid: "+e); }
> > > try { id = toSet.id; } catch ( e:Error ) { trace("Error
> > > setting id: "+e); }
> > > try { created_by = toSet.created_by; } catch ( e:Error )
> > > { trace("Error setting created_by: "+e); }
> > > try { created_on = parseDate(toSet.created_on); } catch
> > > ( e:Error ) { trace("Error setting created_on: "+e); }
> > > try { updated_by = toSet.updated_by; } catch ( e:Error )
> > > { trace("Error setting updated_by: "+e); }
> > > try { updated_on = parseDate(toSet.updated_on); } catch
> > > ( e:Error ) { trace("Error setting updated_on: "+e); }
> > > try { parent_id = toSet.parent_id; } catch ( e:Error ) {
> > > trace("Error setting parent_id: "+e); }
> > > try { contact_id = toSet.contact_id; } catch ( e:Error )
> > > { trace("Error setting contact_id: "+e); }
> > > try { cat_id = toSet.cat_id; } catch ( e:Error ) {
> > > trace("Error setting cat_id: "+e); }
> > > try { team_is_global = toSet.team_is_global; } catch (
> > > e:Error ) { trace("Error setting team_is_global: "+e); }
> > > try { team_organizat_personal =
> > > toSet.team_organizat_personal; } catch ( e:Error ) { trace("Error
> > > setting team_organizat_personal: "+e); }
> > > try { team_abbreviation = toSet.team_abbreviation; }
> > > catch ( e:Error ) { trace("Error setting team_abbreviation: "+e); }
> > > try { team_name = toSet.team_name; } catch ( e:Error ) {
> > > trace("Error setting team_name: "+e); }
> > > try { team_emails = toSet.team_emails; } catch ( e:Error
> > > ) { trace("Error setting team_emails: "+e); }
> > > }
> > > }
> > >
> > > Note: The individual try{} statements are important. I had it around
> > > all the assignments before, and it ends up not initializing.
> > >
> > > Additionally, I'm working on a templating system that creates all  
> > > the VO
> > > objects, PHP objects, and a basic CRUD interface. It's crude
now, but
> > > working for me.
> > >
> > > If you want to chat about it, IM me at mikecrowe (yahoo) or
> > > mike(a)mikeandkellycrowe(d)com (msn).
> > >
> > > Mike
> > >
> > > --- In [email protected], Kevin <lists@> wrote:
> > > >
> > > > I am still having some problems using explicitType with PHP &
Flex.
> > > > I am trying to send a basic Object back from PHP to flex and
have it
> > > > map to a VO. I think I have it all set up correctly, but I
continue
> > > > to get an error:
> > > >
> > > > IN FLEX VO UserDataVO.as
> > > >
> > > > [RemoteClass("com.onefoot.dbocl.services.vo.users.UserDataVO")]
> > > >
> > > > IN PHP VO UserDataVO.php
> > > > var $_explicitType =  
> > > "com.onefoot.dbocl.services.vo.users.UserDataVO";
> > > >
> > > > SEND FROM PHP
> > > > public function getUserInfo(){
> > > > /* retrieve session variables from server
> > > > */
> > > > $User = new UserDataVO();
> > > > $User->fullName = "Test User";
> > > > $User->firstName = "Test";
> > > > $User->lastName = "User";
> > > >
> > > > return $User;
> > > > }
> > > >
> > > >
> > > > RECEIVE IN FLEX from getUserInfo() call
> > > > public function result(data:Object):void
> > > > {
> > > > var userData:UserDataVO = data.result;
> > > > }
> > > >
> > > > ERROR
> > > > Type Coercion failed: cannot convert
mx.utils::[EMAIL PROTECTED]
> > > > to com.onefoot.dbocl.vo.users.UserDataVO.
> > > >
> > > >
> > > >
> > > > Thanks for the help!
> > > >
> > > > - Kevin
> > > >
> > >
> > >
> > >
> >
>


Reply via email to