Bom esta semana como assunto para o meu segundo tutorial pensei em criar um projeto que faça conexão com banco de dados, já que na semana passada fizemos a integração entre flex e php, mas comecei desenvolver um projeto na empresa em que trabalho e necessitei fazer o mapeamento das minhas classes php para o flex, ou melhor, mapear meus "Values Objects". E na minha busca por material sobre o assunto percebi que ainda tem poucos exemplos de como se fazer isto. Então mãos a obra!
1º. Passo: Vamos criar nosso diretório que irá armazenar os valuesObjects (vo) .php. Por default o amfphp traz como diretório para os valuesObjects o diretório "services/vo/" como poderemos confirmar no arquivo globals.php dentro do diretório raiz do amf. Então vamos respeitar a regra e criar nosso objetos lá dentro:
Crie uma hierarquia de diretórios dento da pasta services do amfphp, semelhante a estrutura de projetos em flex, ou seja, DNS reverso que no caso do nosso exemplo ficará da seguinte forma:
2º. Passo: Crie dentro da pasta valuesObjects um arquivo chamado: usuario.php com a seguinte estrutura:

Obs.: O método criado pode ser testado no browser do amfphp, caso não saiba como testar pode dar uma olhada no tutorial que explica como configurar flex, amfphp e php: Configurando Flex + Amfphp + PHP
3º. Passo: Crie um projeto no Flex chamado mapFlexPhp para testarmos o mapeamento: File -> New -> Flex Project.

4º. Passo: Crie uma estrutura de classes semelhante a que criamos para o objeto .php dentro da pasta src do projeto que criamos: ...\src\br\com\mapFlexPhp\valuesObjects
5º. Passo: Crie um arquivo Action Script Class dentro da pasta que criamos, chamado usuario.as com a seguinte estrutura:
6º. Passo: Vamos agora criar um formulário no Flex que irá receber os usuários gerados através do nosso método PHP. No arquivo .mxml principal do nosso projeto vamos desenhar um layout para receber os dados semelhante ao da imagem abaixo, que contem um botão e um dataGrid:
Complete os códigos do nosso arquivo .mxml para ficar semelhante ao que esta apresentado na próxima imagem:
7º. Passo: Compile o projeto e clique no botão Buscar Usuários... pronto, você retornou para o dataGrig objetos do tipo usuário.
Você agora provavelmente deve estar se perguntando para que todo este trabalho, não é? Bom com este tipo de mapeamento você tem um controle muito maior dos objetos em sua aplicação, porque você estará trabalhando com objetos de tipos especificos com atributos e tipos corretos, e não mais com objetos genéricos. E sem contar o quanto facilita nas transações CRUD (Create, Retrieve, Update and Delete) com o banco de dados, entre outras vantagens. Vale a pena dar uma olhada em algum material referente a RPC (Remote Procedure Call - Chamada de Procedimento Remoto).
Tentei fazer um projeto o mais simples possível, mas este é um assunto bastante complexo então as vezes pode parecer um "bixo de 7 cabeças", mas digo a você que não é!















