What are the 2 files TestNamesInVO.php and TestNamesOutVO.php for? 
Isn't it easier to just go to the TestService.php and get the returned
information their.  What is the functions of the 2 files.

Thanks again,

timgerr


--- In flexcoders@yahoogroups.com, "valdhor" <[EMAIL PROTECTED]> wrote:
>
> This seems to be a convoluted way to do this.
> 
> I have created a simple example to show you how I use WebOrb.
> 
> On my server I have the WebORB directory at the root level. In the
> Services directory I have a MyServices directory and in this directory I
> have a ValueObjects directory. For this example I have two files:
> 
> =====================================================================
> TestNamesInVO.php:
> <?php
> class TestNamesInVO
> {
>      public $FirstName;
>      public $LastName;
> 
>      public function __construct($FirstName, $LastName)
>      {
>          $this->FirstName = $FirstName;
>          $this->LastName = $LastName;
>      }
> }
> ?>
> =====================================================================
> TestNamesOutVO.php:
> <?php
> class TestNamesOutVO
> {
>      public $FullName;
> 
>      public function __construct($FullName)
>      {
>          $this->FullName = $FullName;
>      }
> }
> ?>
> =====================================================================
> 
> The constructors are there just to make it easier to create a new
> object. They are optional.
> 
> In the MyServices directory I have a TestService.php file. This contains
> all the functions available with this service.
> 
> =====================================================================
> TestService.php:
> <?php
> class TestService
> {
>      function ShowMe()
>      {
>          return "Tom Jones";
>      }
> 
>      function ShowName($name)
>      {
>          return 'Hello ' . $name;
>      }
> 
>      function ShowNames(TestNamesInVO $namesIn)
>      {
>          require_once("ValueObjects/TestNamesInVO.php");
>          require_once("ValueObjects/TestNamesOutVO.php");
> 
>          $fullName = new TestNamesOutVO($namesIn->FirstName . " " .
> $namesIn->LastName);
> 
>          return $fullName;
>      }
> }
> ?>
> =====================================================================
> 
> In flex I also have a ValueObjects folder underneath my src folder. This
> folder contains the corresponding ActionScript files for the value
> objects on the server:
> 
> =====================================================================
> TestNamesInVO.as:
> package ValueObjects
> {
>      [RemoteClass(alias="MyServices.ValueObjects.TestNamesInVO")]
>      [Bindable]
>      public class TestNamesInVO
>      {
>          //instance variables
>          private var _FirstName:String;
>          private var _LastName:String;
> 
>          //accessor methods
>          public function get FirstName():String {return _FirstName;}
>          public function get LastName():String {return _LastName;}
> 
>          //mutator methods
>          public function set FirstName(FirstName:String):void
{_FirstName
> = FirstName;}
>          public function set LastName(LastName:String):void {_LastName =
> LastName;}
>      } // end class
> }//end package
> =====================================================================
> TestNamesOutVO.as:
> package ValueObjects
> {
>      [RemoteClass(alias="MyServices.ValueObjects.TestNamesOutVO")]
>      [Bindable]
>      public class TestNamesOutVO
>      {
>          //instance variables
>          private var _FullName:String;
> 
>          //accessor methods
>          public function get FullName():String {return _FullName;}
> 
>          //mutator methods
>          public function set FullName(FullName:String):void {_FullName =
> FullName;}
>      } // end class
> }//end package
> =====================================================================
> 
> Note the RemoteClass metadata. This tells flex the location of the class
> on the server that matches this class (In relation to the Services
> directory).
> 
> Finally we have the Flex application that makes calls to functions
> within this service.
> 
> =====================================================================
> WebORBExample.mxml:
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="absolute"
>      creationComplete="onCreationComplete()">
>      <mx:Script>
>          <![CDATA[
>              import mx.messaging.channels.AMFChannel;
>              import mx.messaging.ChannelSet;
>              import mx.rpc.events.FaultEvent;
>              import mx.rpc.events.ResultEvent;
>              import mx.rpc.remoting.RemoteObject;
>              import mx.managers.CursorManager;
>              import mx.controls.Alert;
>              import ValueObjects.TestNamesInVO;
>              import ValueObjects.TestNamesOutVO;
> 
>              private var channelSet:ChannelSet;
>              private var amfChannel:AMFChannel;
>              private var testService:RemoteObject;
> 
>              private function onCreationComplete():void
>              {
>                  channelSet = new ChannelSet();
>                  amfChannel = new AMFChannel("my-amf",
> "http://myserver/WebORB/weborb.php";);
>                  channelSet.addChannel(amfChannel);
> 
>                  testService = new RemoteObject();
>                  testService.channelSet = channelSet;
>                  testService.destination = "MyServices.TestService";
>                  testService.requestTimeout = 15;
> 
>                  testService.ShowMe.addEventListener(ResultEvent.RESULT,
> ShowMeHandler);
>                 
> testService.ShowName.addEventListener(ResultEvent.RESULT,
> ShowNameHandler);
>                 
> testService.ShowNames.addEventListener(ResultEvent.RESULT,
> ShowNamesHandler);
>                  testService.addEventListener(FaultEvent.FAULT,
> faultHandler);
>              }
> 
> 
>              private function runShowNames():void
>              {
>                  var person:TestNamesInVO = new TestNamesInVO();
>                  person.FirstName = "Tom";
>                  person.LastName = "Jones";
>                  testService.ShowNames(person);
>                  CursorManager.setBusyCursor();
>              }
> 
>              private function ShowMeHandler(event:ResultEvent):void
>              {
>                  Alert.show(event.result.toString());
>              }
> 
>              private function ShowNameHandler(event:ResultEvent):void
>              {
>                  Alert.show(event.result.toString());
>              }
> 
>              private function ShowNamesHandler(event:ResultEvent):void
>              {
>                  CursorManager.removeBusyCursor();
>                  var personReturned:TestNamesOutVO = event.result as
> TestNamesOutVO;
>                  Alert.show(personReturned.FullName);
>              }
> 
>              private function faultHandler(fault:FaultEvent):void
>              {
>                  CursorManager.removeBusyCursor();
>                  switch(fault.fault.faultCode.toString())
>                  {
>                      case "Client.Error.RequestTimeout":
>                           Alert.show("The server is not responding.
> Please check that you are connected and the server is running.", "Server
> Timeout");
>                         break;
>                      default:
>                          Alert.show(fault.fault.faultString,
> fault.fault.faultCode.toString());
>                      break;
>                  }
>              }
> 
>          ]]>
>      </mx:Script>
>      <mx:HBox horizontalAlign="center">
>          <mx:Button label="ShowMe" click="{testService.ShowMe()}"/>
>          <mx:Button label="ShowName" click="{testService.ShowName('Tom
> Jones')}"/>
>          <mx:Button label="ShowNames" click="runShowNames()"/>
>      </mx:HBox>
> </mx:Application>
> =====================================================================
> 
> If you have any more questions, please don't hesitate to ask.
> 
> 
> 
> --- In flexcoders@yahoogroups.com, "timgerr" <tim.gallagher@> wrote:
> >
> > OK, so I have created this hello world service and then had WebOrb
> > create the code I see in the actionscript comments This:
> >
> > (If using Model-View-Controller)
> > - Modify the constructor of the class below to accept the controller
> > object
> > - Modify response handlers to pass return values to the controller
> >
> > (if not using MVC)
> > - Modify the constructor of the class below to accept your View object
> > - Modify response handlers to display the result directly in the View
> >
> > I am not useing MVC so I have to use the 2nd commented option.  the
> > problem is I am not sure what to do, someone help me?
> >
> > Here is my PHP code:
> > <?php
> > class HelloWorld {
> >  function ShowMe()
> >  {
> >   return "Tom Jones";
> >  }
> >  function ShowName($name)
> >  {
> >   return 'Hello ' . $name;
> >  }
> > }
> > ?>
> > So I have 2 methods, ShowMe and ShowName.
> >
> > Here is my as code:
> >    package comp.HelloWorld
> >    {
> >    import mx.rpc.remoting.RemoteObject;
> >    import mx.controls.Alert;
> >    import mx.rpc.events.ResultEvent;
> >    import mx.rpc.events.FaultEvent;
> >    import mx.rpc.AsyncToken;
> >        import mx.rpc.IResponder;
> >
> >    import comp.HelloWorld.vo.*;
> >
> >    public class HelloWorld
> >    {
> >    private var remoteObject:RemoteObject;
> >    private var model:HelloWorldModel;
> >
> >    public function HelloWorld( model:HelloWorldModel = null )
> >    {
> >     remoteObject  = new RemoteObject("GenericDestination");
> >     remoteObject.source = "comp.HelloWorld.HelloWorld";
> >
> >     remoteObject.ShowMe.addEventListener("result",ShowMeHandler);
> >     remoteObject.ShowName.addEventListener("result",ShowNameHandler);
> >     remoteObject.addEventListener("fault", onFault);
> >
> >      if( model == null )
> >      model = new HelloWorldModel();
> >
> >     this.model = model;
> >
> >    }
> >
> >       public function setCredentials( userid:String, password:String
> > ):void
> >       {
> >         remoteObject.setCredentials( userid, password );
> >       }
> >
> >       public function GetModel():HelloWorldModel
> >       {
> >         return this.model;
> >       }
> >
> >    public function ShowMe(  responder:IResponder = null):void
> >   {
> >     var asyncToken:AsyncToken = remoteObject.ShowMe();
> >
> >    if( responder != null )
> >     asyncToken.addResponder( responder );
> >   }
> >
> >    public function ShowName( name:String, responder:IResponder =
> > null):void
> >   {
> >     var asyncToken:AsyncToken = remoteObject.ShowName( name);
> >
> >    if( responder != null )
> >     asyncToken.addResponder( responder );
> >   }
> >    public virtual function ShowMeHandler(event:ResultEvent):void
> >    {
> >     var returnValue:Object = event.result as Object;
> >     model.ShowMe = event.result as Object;
> >    }
> >
> >    public virtual function ShowNameHandler(event:ResultEvent):void
> >    {
> >     var returnValue:Object = event.result as Object;
> >     model.ShowName = event.result as Object;
> >    }
> >
> >   public function onFault (event:FaultEvent):void
> >    {
> >     Alert.show(event.fault.faultString, "Error");
> >    }
> >   }
> >
> >   }
> >
> > I get an error on: import comp.HelloWorld.vo.* (not sure what this is
> > or how to create it)
> >
> >
> > And here is another chunck of code that I have to modify
> >
> >  public virtual function ShowMeHandler(event:ResultEvent):void
> > {
> >      var returnValue:Object = event.result as Object;
> >      model.ShowMe = event.result as Object;
> > }
> >
> > public virtual function ShowNameHandler(event:ResultEvent):void
> > {
> >      var returnValue:Object = event.result as Object;
> >      model.ShowName = event.result as Object;
> > }
> >
> > I get an error:
> > (Severity and Description Path Resource Location Creation Time Id
> > 1119: Access of possibly undefined property ShowMe through a reference
> > with static type comp.HelloWorld:HelloWorldModel.
> > WeborbHelloworld/src/comp/HelloWorld HelloWorld.as line 95
> > 1222790567712 8938)
> >
> > On these 2 lines of code:
> > model.ShowMe = event.result as Object;
> > model.ShowName = event.result as Object;
> >
> > I just want to return that stuff, what do I have to do in order to fix
> > the errors.
> >
> > Thanks,
> > timgerr
> >
>


Reply via email to